一、原理html
结构元素(Sturcture Element),形象称呼刷子,在每一个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结构是输出图像的相应像素。运算效果取决于结构元素大小内容以及逻辑运算性质。spa
对Z2上元素集合A和结构体元素S,使用S对A进行腐蚀,记做:code
AΘS={z|(S)z € A}htm
让位于图像圆点的结构元素S在Z平面上移动,若是S的圆点移动到z点时,S可以彻底的包含于A中,则认为这样的z点构成的集合是S对A的腐蚀图像。blog
下图左侧是原图X,B是结构元素,右图是腐蚀的结果。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,若是B上的全部点都在X的范围内,则该点保留,不然将该点去掉;右边是腐蚀后的结果。能够看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。图像腐蚀相似于“领域被蚕食”,将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。get
二、腐蚀的实现it
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('腐蚀图像');
参与计算的结构元素se为:opencv
se =class
Flat STREL object containing 9 neighbors.原理
Neighborhood:
1 1 1
1 1 1
1 1 1
放大后能够看到,原始图像左上角第三列上方有一个5*5方块,下方有一个4*4的方块。腐蚀后变为右侧的图像。腐蚀先后方块的对比图以下。
若是把结构元素改成5*5,se = strel('square', 5);则腐蚀图像没有左上角的白块。
若是把结构元素改成10*10,se = strel('square', 10);则腐蚀图像文字变得很是纤细。
三、总结
腐蚀能够用于滤波,选择适当的结构元素,能够滤掉全部不能彻底包含结构元素的噪声点。可是在滤除噪声的时候,对前景图像的形状也会产生影响,尤为是形状边缘,可是当只关心物体的位置和个数时,就不用太考虑形状边缘的变化,可使用腐蚀来滤除噪声。
尊重原创技术文章,转载请注明。