2016-07-05 34 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通道圖像,你會期望結果是?是否總和(rgbImage(:) )'做你想做的? –

+0

是的,它工作。它出來143780359.我的圖像大小爲101 KB。當我查看imfinfo.FileSize時,它會返回103222給我。我想將我的圖像縮小到50 KB。我如何計算總像素減少了多少,以及103222的含義是什麼? – Alex

+0

我不明白你想要什麼,對不起。嘗試將其納入一個完好措辭的問題中,以便獲得更多幫助 –

回答

0

像素的總數不等於您的圖像中的值的總和。

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

上的圖像的磁盤大小是numberOfPixels*bytesPerPixel,其中bytesPerPixel依賴於圖像的比特深度(uint8將是8位= 1個字節,例如。

爲了通過一半下采樣圖像,既可以降低比特深度(例如,從uint16uint8,或者通過sqrt(2)在高度和寬度使用imresize減少像素的數目,例如。