原理如下

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的应用

待学习:小白学习图像处理——图像的形态学处理(MATLAB)