【发布时间】: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