我有一个带网格的二进制文字图像,我想找到每个片段中的前景像素(每个片段中的黑色和白色的数量)
答案 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
对于每个网格,在两个方向上找到范围,然后应用相同的想法。
例如,从x1
到x2
和y1
到y2
是一个网格:
sum(bw(x1:x2, y1:y2) == 0) // will give you the black pixels you want