Matlab:如何在彩色图像中找到黑色像素的数量?

hs1*_*100 3 matlab image image-processing

我想用MATLAB找到彩色图像中的黑色像素数,我该怎么办?

谢谢.

Div*_*kar 7

nnz像这样使用-

nnz(all(im==0,3))
Run Code Online (Sandbox Code Playgroud)

im你的图像数据在哪里.

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

这里的假设是黑色像素是三元组(0,0,0).


相反,如果您将黑色像素定义为[0 th]在所有通道中相同像素位置的间隔中具有值的像素,请使用此 -

nnz(all(im<=th,3))
Run Code Online (Sandbox Code Playgroud)

  • 当然,要注意你的"黑色"的定义是所有RGB值都是"0",那些近黑色如"1,1,1"(我假设一个比例为`[0..255] ]`)不是黑人. (3认同)