在二进制图像中查找白/黑像素的数量

时间:2017-02-28 18:46:14

标签: image matlab

我有一个带网格的二进制文字图像,我想找到每个片段中的前景像素(每个片段中的黑色和白色的数量)

3 个答案:

答案 0 :(得分:1)

所以我只想获得图像的黑色像素总数,我不想对其进行分割。不想学习如何分割矩阵。

获得黑色像素总和的简单方法:

sum(sum(bw == 0)) 

相反得到白色像素

sum(sum(bw == 1))

操作函数 sum(bw == 0) 只是将所有内容转换为 [1xn] 矩阵,因此您需要执行 sum 并求和整个图像矩阵。

认为 cumsum 可以解决问题,但 sum(sum()) 更适合这种情况。告诉你我对编码知之甚少。享受这些信息的乐趣,请注意,我只是用它来确定二值化图像的区域覆盖范围,但对于其他任何特别有用的东西。

答案 1 :(得分:0)

使用逻辑索引很容易。

对于每个细分,请执行:

n_white=sum(segment(:)==1);
n_black=sum(segment(:)==0);

答案 2 :(得分:0)

假设您的黑白图像为bw

 sum(bw==0) // number of black pixels
 sum(bw==1) // number of white pixels

对于每个网格,在两个方向上找到范围,然后应用相同的想法。

例如,从x1x2y1y2是一个网格:

  sum(bw(x1:x2, y1:y2) == 0) // will give you the black pixels you want