MATLAB(三) 图像处理--形态学

形态学处理

二值形态学

1. 结构元素的构造与分解

Se=strel(shape,parameters);

如以下语句可以构造一个正方形结构元素:

se=strel('rectangle',[3 3]);

结构元素为:
结构元素
结构元分解:
结构元B可描述为结构元B1和B2的膨胀:

B=B1膨胀B2

比如由5*5的全是1的结构元素可分解为值为1的5元素行矩阵和值为1的5元素列矩阵,结构元素的分解能获得速度提升。

2.腐蚀与膨胀

腐蚀:

J = imerode(I,SE);

膨胀:

J = imdilate(I,SE)

3.开操作与闭操作

开操作:

J = imopen(I,SE)

开操作即为先对图像进行腐蚀操作,在对图像进行膨胀操作
作用:去除所有不能包含结构元的部分,平滑目标轮廓,断开细的连接部分,去掉细的突出
闭操作:

J = imclose(I,SE)

闭操作即为先对图像进行膨胀操作,在对图像进行腐蚀操作
作用:平滑目标的轮廓,并且连接窄的断裂并填满细长的“港湾”,填满闭结构元小的洞。

4.形态学滤波器

不同顺序(不同结构元大小,不同次数)运用腐蚀膨胀、开闭操作。

5.击中或击不中变换

BW2 = bwhitmiss(BW,SE1,SE2);

6.二值图像的形态学变换

g=bwmorph(f,opration,n);

bwmorph函数可以执行许多以膨胀、腐蚀为基础的形态学操作,operation是指定的所希望运算的字符串,n是重复次数,默认为1,可以是Inf.
可进行操作包括细化,粗化,骨架,剪裁等等

7.形态学操作

  • 删除小面积对象
BW2 = bwareaopen(BW,P)

删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。

  • 删除边界物体
IM2 = imclearborder(IM);

删除和图像边界相连的对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。

  • 极限腐蚀
BW2 = bwulterode(BW)
  • 区域/孔洞填充
BW2 = imfill(BW,'holes')
  • 重建
IM = imreconstruct(marker,mask);

通过重建开操作:对图像先进行腐蚀操作,利用腐蚀的图像作为标记,利用原图像作为模板,进行重建。

灰度形态学

1.膨胀与腐蚀

二值形态学腐蚀膨胀定义的扩展。
腐蚀:小于结构元的峰顶将被削除
膨胀:小于结构元的谷底将被弥合

2.开操作与闭操作

二值形态学开操作闭操作定义的扩展。
开操作:先腐蚀,后膨胀
闭操作:先膨胀,后腐蚀

3.形态学图像平滑

先开操作,再闭操作
可以减少或去除人为亮和暗的因素或噪声。

4.顶帽操作与底帽操作

顶帽操作:

J = imtophat(I,SE)

原图像减去图像开操作结果,去除图像暗部,突出亮部细节
这里写图片描述
这里写图片描述
开操作:
这里写图片描述
这里写图片描述
最终结果:
这里写图片描述
这里写图片描述
底帽操作:

J = imbothat(I,SE)

原图像减去图像闭操作结果,去除图像亮部,突出暗部细节
这里写图片描述
这里写图片描述
这里写图片描述
闭操作:
这里写图片描述
这里写图片描述
最终结果:
这里写图片描述
这里写图片描述

5.纹理分割

6.粒度测定

7.形态学图像梯度

膨胀结果减去腐蚀的结果,是图像局部灰度变化的一种度量,它使输入图像中灰度级的跃变更加明显。

猜你喜欢

转载自blog.csdn.net/m0_37565736/article/details/79840428