图像腐蚀

1、原理

结构元素(Sturcture Element),形象称呼刷子,在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结构是输出图像的相应像素。运算效果取决于结构元素大小内容以及逻辑运算性质。

对Z2上元素集合A和结构体元素S,使用S对A进行腐蚀,记作:

AΘS={z|(S)z € A}

让位于图像圆点的结构元素S在Z平面上移动,如果S的圆点移动到z点时,S能够完全的包含于A中,则认为这样的z点构成的集合是S对A的腐蚀图像。

下图左侧是原图X,B是结构元素,右图是腐蚀的结果。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。图像腐蚀类似于“领域被蚕食”,将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。

图像腐蚀_第1张图片

2、腐蚀的实现

imgPath = 'E:\opencv_pic\src_pic\pic1.bmp';
img = imread(imgPath);
img=rgb2gray(img);
img = 255-img;
se = strel('square', 3)
img2 = imerode(img, se);
subplot(1,2,1),imshow(img),title('原始图像');
subplot(1,2,2),imshow(img2),title('腐蚀图像');

图像腐蚀_第2张图片

参与计算的结构元素se为:

se =

Flat STREL object containing 9 neighbors.

Neighborhood:

     1     1     1

     1     1     1

     1     1     1

放大后可以看到,原始图像左上角第三列上方有一个5*5方块,下方有一个4*4的方块。腐蚀后变为右侧的图像。腐蚀前后方块的对比图如下。

图像腐蚀_第3张图片

 如果把结构元素改为5*5,se = strel('square', 5);则腐蚀图像没有左上角的白块。

图像腐蚀_第4张图片

 如果把结构元素改为10*10,se = strel('square', 10);则腐蚀图像文字变得非常纤细。

 图像腐蚀_第5张图片

 3、总结

腐蚀可以用于滤波,选择适当的结构元素,可以滤掉所有不能完全包含结构元素的噪声点。但是在滤除噪声的时候,对前景图像的形状也会产生影响,尤其是形状边缘,但是当只关心物体的位置和个数时,就不用太考虑形状边缘的变化,可以使用腐蚀来滤除噪声。 

 

尊重原创技术文章,转载请注明。

https://www.cnblogs.com/pingwen/p/12237881.html

你可能感兴趣的:(图像腐蚀)