开运算:先腐蚀后膨胀,作用是移除场景中较小的物体,因为它们无法完全包含结构元素。
闭运算:先膨胀后腐蚀,作用是填充较亮物体中小洞,同时连接多个相邻物体,基本上,无法完全包含结构元素的洞或缝隙将被移除。
形态学梯度:膨胀图减去腐蚀图,得到物体轮廓
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img;
img=imread("C://Users//huashuo111//Desktop//毛笔字.jpg");
namedWindow("原图",1);
imshow("原图",img);
Mat img1;
Mat element;
int s=5;
element=getStructuringElement(MORPH_RECT,Size(s,s));
morphologyEx(img,img1,MORPH_OPEN,element);
Mat img2;
morphologyEx(img,img2,MORPH_CLOSE,element);
imshow("开运算",img1);
imshow("闭运算",img2);
Mat img3;
morphologyEx(img,img3,MORPH_GRADIENT,element);
imshow("形态学梯度",img3);
imwrite("C://Users//huashuo111//Desktop//开运算.jpg",img1);
imwrite("C://Users//huashuo111//Desktop//闭运算.jpg",img2);
imwrite("C://Users//huashuo111//Desktop//形态学梯度.jpg",img3);
waitKey();
return 0;
}
原图:
开运算:
小黑点被连接到母体上了
闭运算:
小黑点变浅了
形态学梯度:
出现轮廓。