填写任何大小的洞的方法

时间:2013-04-26 02:42:01

标签: matlab image-processing shrink

我正在进行指纹识别项目,但我需要对图像进行预处理。我将完成以下过程。

1)二值化

2)过滤以消除“阶梯”效应;即平滑

3)细线

我正在添加一个我正在尝试开发的步骤,它将填充细化后留下的任何漏洞。我试图按照以下方式完成此任务。

4a)使用bwlabel查找区域(我可能会考虑使用bwmorp(...,'shrink')来保留“blob”,但这样可以减少blob的大小)。

4b)找到所有没有最大面积的区域

4c)使用这些区域的位置将这些“斑点”缩小为点。

但是如何在指定位置应用缩小?

二值化

Binarization

过滤

Filtered

减薄

Thinning

填孔

Fill holes

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了这个问题。但是你可以补充稀疏图像,然后使用bwlabel。之后,计算属于每个标签的像素数。应用您的条件选择标签并获取其位置。之后,您可以使用imfill(bw,locations)命令。

答案 1 :(得分:0)

如果您想要缩小某个区域,则计算该区域的质心。通过平均blob中每个点的x和y坐标来做到这一点。将区域像素设置为黑色,将质心设置为白色。

  

我遇到的问题是修剪脊部以便离开填充区域,同时避免填充区域的侵蚀(如果我使用侵蚀,脊部会消失,但也会减小区域的大小)。

你不必担心小区域的侵蚀,因为它对质心影响不大,你的观点仍然会到达适当的位置。