形态学重构 imreconstruct 学习记录

最近期末考试最后一题考到了形态学重构,当时只是粗略看了看,具体原理方法没有说的特别清楚,需要学习!

参考网站:

(75条消息) 关于形态应用学(重构、边界提取)和matlab实现_张诚瑞的博客-CSDN博客

图像处理 形态学 (腐蚀 膨胀 开闭运算 连通分量....) - Bear.Tirisfal - 博客园 (cnblogs.com)

matlab中用到的形态学重构函数 imreconstruct(M,X)

M代表一个标记点图像,标记变换开始点 X为掩膜图像,约束变换过程 目的是提取原始图像中的含有某些特征的连通区域构成新图像

那道期末考试题主要利用重构对图像进行保护性腐蚀

原图:

形态学重构 imreconstruct 学习记录_第1张图片

 目标:

形态学重构 imreconstruct 学习记录_第2张图片

 大致目标是想提取原图中带长竖线的字母。按照imreconstruct的输入,首先需要有标记长竖线位置的标记点。

%% 图片是直接截图的,所以需要一个二值化过程
Z = imread("reCon.png");
Z1 = im2bw(Z(:,:,1));
figure;
imshow(Z1);

%% 用竖线腐蚀图像
mark = imerode(Z1,ones(14,1));
figure;
imshow(mark);

形态学重构 imreconstruct 学习记录_第3张图片

 利用一个labeloverlay叠加操作看一下标记点大概位置,基本上覆盖了所有的含长竖线的字母。

形态学重构 imreconstruct 学习记录_第4张图片

将这个腐蚀后的图像作为标记点,原图作为掩膜,寻找原图中与标记点连接的部分 

%% 形态学重构
Z2 = imreconstruct(mark,Z1);
figure;
imshow(Z2);

形态学重构 imreconstruct 学习记录_第5张图片形态学重构 imreconstruct 学习记录_第6张图片

(有些字母没有非常完整的提取,可以在重构之前对原图膨胀一下,完整连接部分) 

与单纯的开运算比较:

 形态学重构 imreconstruct 学习记录_第7张图片

 形态学重构相比于开运算,可以保护性腐蚀图像

(暂时先发现这么多,这个工具应该还有很多作用....)

形态学重构 imreconstruct 学习记录_第8张图片

 

你可能感兴趣的:(matlab)