原理如下
1. 膨胀
膨胀就是求局部最大值的操作。
2. 腐蚀
与膨胀相反,腐蚀就是求局部最小值的操作。
3. 开运算 imopen()
先腐蚀后膨胀称为开 (Open),即 OPEN(X) = D(E(X))
原图经过开运算后,一些孤立的小点被去掉了。开运算能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),而总的位置和形状不变。这就是开运算的作用。
4. 闭运算
先膨胀后腐蚀称为闭 (Close),即 CLOSE(X) = E(D(X))
原图经过闭运算后,断裂的地方被弥合了。一般来说,闭运算能够填平小湖(即小孔),弥合小缝隙,而总的位置和形状不变。这就是闭运算的作用。
From: 形态学操作:膨胀与腐蚀
代码示例
% 函数imopen和imclose的应用
f = imread('liantongyu.png');
subplot(2,2,1), imshow(f), title('原图像');
se = strel('square',20); % 结构元素
fo = imopen(f,se); % 开运算
subplot(2,2,2), imshow(fo), title('开运算后的图像');
fc = imclose(f,se); % 闭运算
subplot(2,2,3), imshow(fc), title('闭运算后的图像');
foc = imclose(fo,se); % 开闭运算
subplot(2,2,4), imshow(foc), title('开闭运算后的图像');
strel
参考 https://www.mathworks.com/help/images/ref/strel.html#d122e232572
函数效果如下:
From: 函数imopen和imclose的应用