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.形态学图像梯度
膨胀结果减去腐蚀的结果,是图像局部灰度变化的一种度量,它使输入图像中灰度级的跃变更加明显。