首页 文章

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

提问于
浏览
0

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

enter image description here

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

谢谢 .

1 回答

  • 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

相关问题