膨胀及腐蚀,函数很简单,就写了个Demo
定义:
膨胀---图像膨胀的过程类似于一个卷积的过程,假设有图像矩阵A以及结构元素B(注意,B的形状、尺寸没有限制),B在A矩阵上依次移动,每个位置上B所覆盖元素的最大值替换B的中心位置值(即锚点处),即为膨胀的过程。
腐蚀---腐蚀的过程与膨胀一致,区别在于用最小值替换中心位置值。
# include<stdio.h>
# include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int atgc, char ** argv)
{
Mat img = imread("1.jpg", -1);
pyrDown(img,img,Size(img.cols/2, img.rows/2));
Mat out1;
Mat structElement1 = getStructuringElement(MORPH_RECT, Size(4,4), Point(-1,-1));
dilate(img,out1,structElement1);
imshow("膨胀", out1);imwrite("膨胀.jpg", out1);
Mat out2;
Mat structElement2 = getStructuringElement(MORPH_RECT, Size(4,4), Point(-1,-1));
erode(img,out2,structElement2);
imshow("腐蚀", out2);imwrite("腐蚀.jpg", out2);
waitKey();
return 0;
}
原图
腐蚀
膨胀