【问题标题】:Count white and black pixels计算白色和黑色像素
【发布时间】:2015-02-13 05:05:52
【问题描述】:

我正在编写一个计算黑白像素的函数。
Matlab 中是否有计算白色和黑色像素的功能?
我知道我可以使用 size 方法和 2 for 循环和计数。
像这样的:

[row, column]= size(im);
cb = 0;
cw = 0;
for i=1:row
    for j=1:column
        if(im(i,j) == 0 )
            cb = cb + 1;
        end
        if(im(i,j) == 255)
            cw = cw + 1;
        end
    end
end

但我正在寻找一些更简单的方法。你知道什么方法吗?

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    如果im 是二值图像,则:

    cb = sum(im(:))
    cw = numel(im) - cb
    

    如果im 是灰度图像,则:

    cb = sum(im(:) == 255)
    cw = sum(im(:) == 0)
    

    【讨论】:

    • 有什么方法可以检查 im 是二进制还是灰度图像?
    • 灰度图像有时表示为双精度数组(用于执行一些数学运算)。在这种情况下,强度介于 0.0 和 1.0 之间——其中 0 是黑色,1 是 100% 白色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2020-03-07
    • 2013-10-10
    • 1970-01-01
    • 2012-04-27
    • 2015-05-05
    相关资源
    最近更新 更多