2014-09-05 85 views

回答

7

使用nnz這樣的 -

nnz(all(im==0,3)) 

其中im是你的圖像數據。

替代品 - sum(reshape(all(im==0,3),[],1))sum(sum(all(im==0,3)))

這裏的假設是黑色像素是三元組(0,0,0)


相反,如果你定義黑色像素爲在所有頻道上相同的像素位置的間隔[0 th]值的像素,使用此 -

nnz(all(im<=th,3)) 
+3

照顧,當然,前提是你的定義「黑色」是所有的RGB值都是「0」,接近黑色的是例如「1,1,1」(我假設一個比例尺「[0..255]」)不是黑色。 – 2014-09-05 15:12:43

+0

@高性能表現感謝!就此添加註釋。 – Divakar 2014-09-05 15:15:11

+0

我有點失落。如果我的im是<1536x2048x3 uint8>,假設黑色像素是(0,0,0)是正確的嗎? – user2916044 2014-09-05 15:19:31