2016-07-05 4 views
-3

イメージ(785x728)イメージ内のピクセルの合計数を取得する方法。私はここにループを適用しており、それは多くの時間を費やしています。任意の簡単な方法合計イメージ内のピクセル数

for i=1:height 
    for j=1:width 
     for d=1:colorChannel 
      value = double(rgbImage(i,j,d)); 
      display(i); 
      totalSum = totalSum + value; 
      display(totalSum); 
     end 

    end 

end 
+1

785x728 3チャンネルの画像を考えると、何を希望う結果は? 'sum(rgbImage(:) ) 'あなたがしたいことをやる? –

+0

はい、動作します。143780359が出てきます。画像サイズは101 KBです。 imfinfo.FileSizeを調べると、103222が返されます。イメージを50 KBに縮小したい。どのようにして総ピクセルからどれだけ減らすか計算し、103222は何を意味するのでしょうか? – Alex

+0

あなたが欲しいものは分かりません。申し訳ありません。それをあなたにもっと助けを求めることができるように、よく言い表わされた質問に取り入れてみてください。 –

答えて

0

合計ピクセル数は画像の合計値と等しくありません。

sumOfAllPixelValues = sum(double(rgbImage(:))); 
numberOfPixels  = numel(rgbImage); 

画像のディスク上のサイズは、bytesPerPixel、画像のビット深度に依存numberOfPixels*bytesPerPixel、である(uint8は、例えば8ビット= 1つのバイトであろう。

が半分に画像をダウンサンプリングします、あなたは例えばuint16からuint8に行く(ビット深度を削減するか、またはあなたがimresizeを使用して、たとえば、高さと幅にsqrt(2)により、画素数を減らす。

関連する問題