2

我正在做一个指纹识别项目,但我需要对图像进行预处理。我经历了以下过程。

1)二值化

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

3)细线

我正在添加一个我正在尝试开发的步骤,该步骤将填充细化后留下的任何孔。我正在尝试按如下方式完成此操作。

4a)bwlabel用于查找区域(我可能会考虑使用bwmorp(...,'shrink')仅留下“斑点”,但这样做会稍微减小斑点的大小)。

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

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

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

二值化

二值化

过滤

过滤

细化

细化

填孔

填充孔

4

2 回答 2

0

如果您有一个区域要缩小到一个点,则计算该区域的质心。只需平均 blob 中每个点的 x 和 y 坐标即可。将区域像素设置为黑色,将质心设置为白色。

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

您实际上不必担心小区域的侵蚀,因为它对质心的影响很小,并且您的点最终仍会到达适当的位置。

于 2013-04-27T03:52:26.053 回答
0

我不确定我是否正确理解了这个问题。但是你能不能对细化的图像进行补充,然后使用bwlabel. 之后,计算属于每个标签的像素数。应用您的标准来选择标签并获取它们的位置。之后,您可以使用imfill(bw,locations)命令。

于 2013-04-26T07:08:18.197 回答