关于图像形态处理(膨胀腐蚀)的原理和matlab实现

关于图像分割和hough变换(19_01_23学习进度)

图像形态处理(文字区域识别)

数学形态学是一种应用于图像处理和模式识别的方法,基本思想是用具有一定形态的结构元素去度量和提取图像中对应的形状以达到对图像分析和识别的目的,利用数学形态学对物体的几何结构分析过程就是把主体和客体相互逼近的过程,利用数学形态学的基本概念和运算将结构元素灵活组合分解,引用形态变换达到分析的目的

膨胀

膨胀的原理就是将与物体接触的所有背景点都合并到物体中,饰边界向外部扩张,可以用来填补物体中的空洞,膨胀的方法是将图像的中心点和其周围的点一个一个得比对,如果符合运算的条件,那就将原来图像中的点的周围补充上颜色
二值图像的膨胀算法可以使用matlab提供的imdilate函数实现,调用方式为:

Z=imerode(X,B)

其中X是M*N的二值图像矩阵,B为结构元素,其元素必须包含只有0和1,其数据类型任意不需要是逻辑类型,返回值Z是与X大小相同的二值图像矩阵,使用如下:

>> X=imread('number.bmp');
>> B=[0 1 0;1 1 1;0 1 0];
>> Z1=imerode(X,B);
>> Z2=imerode(Z1,B);
>> Z3=imerode(Z2,B);
>> imshow(X),figure,imshow(Z1),figure,imshow(Z2),figure,imshow(Z3);

这段代码表示的是三次膨胀,其中B=[0 1 0;1 1 1;0 1 0];表示的是每个像素点按照十字形状膨胀效果如下:

关于图像形态处理(膨胀腐蚀)的原理和matlab实现_第1张图片
明显可见原本的图象被加粗了。

腐蚀

腐蚀的意义和膨胀相反,是符合条件的图像替换为设置的参数,不符合的完全删除,函数为:

Z=imdilate(X,B)

使用方式为:

>> X=imread('number.bmp');
>> B=[0 1 0;1 1 1;0 1 0];
>> Z=imdilate(X,B);
>> imshow(X),figure,imshow(Z);

关于图像形态处理(膨胀腐蚀)的原理和matlab实现_第2张图片

开运算和闭运算

使用结构元素B对X进行开运算就是用B对X进行腐蚀,再用B对结果进行膨胀;
使用结构元素B对X进行开运算就是用B对X进行膨胀,再用B对结果进行腐蚀;

开运算完全删除了不能包含结构元素的对象区域,平滑了对象的轮廓,断开了狭窄的连接区域,去掉了细小的突出部分,
而闭预算会将狭窄的缺口连接起来形成细长的连接口,并填充比结构元素小的孔洞,
对二值图像在matlab中可以使用

Z=imopen(X,B);

进行开操作

击中变换

计中判定是用来识别像素的特定的形状的,G被B击中定义为G的所有元素值和B的所有元素值相同,则输出1,不同则输出0,大致和腐蚀相同
使用的函数为:

Z=bwhitmiss(X,B1,B2)

其中:X为图像矩阵,B1为前景结构元素,B2为背景结构元素

你可能感兴趣的:(matlab基础)