在MATLAB中查找二进制图像中白色区域中的像素数以及原始图像中ROI的像素数

时间:2017-08-10 19:16:23

标签: image matlab image-processing

我有分段图像,其中我感兴趣的区域(ROI)是白色棉花。现在我想比较分割区域中的像素数,即二进制图像中白色斑点中的像素总数与实际图像中ROI的实际像素数。我怎么能这样做下图可以明确一点。 enter image description here enter image description here

正如我们从原始图像中看到的那样,我的投资回报率是用红色边框圈出的白色棉花。当我分割这个图像时,我得到了如图所示的二进制图像。我们可以注意到,与原始区域相比,二进制图像中存在一些缺失区域。因此,我想计算ROI原始图像中的像素数和二进制图像中白色斑点的像素数。这样我就可以计算出ROI的实际像素和实际分段像素数之间的差异。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您不希望自己划清界限,可以尝试一下。它可能不如您所需的那么精确,但您可以通过使用我使用的阈值值(在这种情况下为所有3个通道100)调整接近实际值。

假设我是您的原始图像。首先通过使用RGB值进行阈值处理来创建二进制掩码。然后删除所有没有至少2000像素区域的小对象。然后总结该对象的像素。

IT = I(:,:,1) > 100;
IT(I(:,:,2) < 100) = 0;
IT(I(:,:,3) < 100) = 0;
IT = bwareaopen(IT, 2000);
sum(IT(:) > 0)
  

21380

结果图片: enter image description here