【问题标题】:How to filter binary image with unwanted region and hole region如何过滤具有不需要区域和孔区域的二值图像
【发布时间】:2014-06-15 10:15:15
【问题描述】:

我有一个难题需要您的帮助。我有一个二值图像,它保留了一些不需要的区域(小白点)和孔区域(在图 1 中)。我的想法是,首先我将通过计算这些区域的面积来移除不需要的区域,然后用小面积值进行过滤。在第二步,我填充孔区域以使图像清晰。您认为填充孔区域的最佳方法是什么。你有什么想法来解决它。你能帮我用matlab实现它吗?太感谢了。这是我删除不需要的区域的参考代码。但它需要阈值术语。你可以在here下载图片测试

function exImage=rmUnwantedRegion(Img,threshold)
    lb = bwlabel(Img);
    st = regionprops(lb, 'Area', 'PixelIdxList' );
    toRemove = [st.Area] <threshold; % fix your threshold here
    exImage = Img;
    exImage( vertcat(st(toRemove).PixelIdxList ) ) = 0; % remove
 end

【问题讨论】:

  • 试试exImage = bwareaopen(Img, threshold)。
  • @Jigg:bwareopen 需要阈值。它不稳定。我认为卷积方案很好。
  • 上传您的原始图片,人们将能够测试他们的提案。
  • @Jigg:请再检查一次。我上传了

标签: algorithm matlab image-processing


【解决方案1】:

您需要先进行腐蚀(Wikipedia 或 Matlab),然后进行膨胀(Wikipedia 或 Matlab)。这是使用 Matlab 中的 imerode 和 imdilate 函数完成的。

执行此操作需要使用strel function 指定侵蚀和膨胀元素的大小以及形状(“方形”、“圆盘”、“八边形”等)和大小。

SE=strel('disk',5);
im_eroded=imerode(im,SE);
im_dilated=imdilate(im_eroded,SE);

【讨论】:

  • 'circle' 在 matlab 中不可用
  • 这与上面的@Raab70 答案几乎完全相同。请为答案投票并在 cmets 中添加链接,而不是复制它们。
【解决方案2】:

这是基于我的评论的示例实现:

subplot(1,3,1), imshow(input);
title('Original Image');

计算图像的开度:

openInput=bwareaopen(input, 20);    
subplot(1,3,2), imshow(bwareaopen(input, 20));
title('Opened Image');

以及随后的关闭:

ClosedInput = imclose(openInput,ones(10)); 
subplot(1,3,3), imshow(ClosedInput);
title('Closed Image');

结果:

【讨论】:

    【解决方案3】:

    这看起来像是二进制 dilation 和 erosion 的工作。通常,首先进行腐蚀以去除不需要的噪声,然后使用相同的结构元素执行膨胀以填充腐蚀留下的间隙。 Matlab 使用strel 为形态学操作创建结构元素。您还可以阅读有关形态运算符here

    例子:

    SE=strel('square',5);
    im_eroded=imerode(im,SE);
    im_dilated=imdilate(im_eroded,SE);
    

    【讨论】:

    • 我应用了形态学,但结果非常糟糕。我用 SE=strel('square',2);
    • 结构元素的选择很关键,因为如果膨胀极端,它会变得很明显。尝试磁盘结构元素。如果孔和噪声大小不同,您也可以使用两个不同的 SE。
    【解决方案4】:

    假设白色像素为 1 黑色为0 第1步: 使用卷积矩阵(http://en.wikipedia.org/wiki/Kernel_%28image_processing%29)

    带有模糊滤镜

    第 2 步: 用一些静态值(例如 0.5)对每个像素进行阈值化

    如果像素 >0.5 像素 = 1 否则像素 = 0

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2014-05-02
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2012-09-20
      • 2021-04-12
      相关资源
      最近更新 更多