一、概述
案例:使用膨胀dilate和腐蚀erode操作来操作图形
用途:图像的形态学操作主要用在图像的预处理阶段。例如:对身份证进行切割时。在对身份证进行灰度-->模糊---->黑白分割后可对图像进行膨胀操作让文本进行黏连,然后再利用图像分割技术就身份证文字的块状区域进行分割。
二、图片示例
原图

膨胀

腐蚀

三、代码示例
//图像形态学操作-->基于形状的一系列的图像处理操作的集合
//常见的形态学操作有:膨胀、腐蚀、开操作、闭操作,其中膨胀和腐蚀是最常用的。
//作用:膨胀:亮的区域变大,腐蚀:暗的区域变大
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
Mat src, dst;
char OUTPUT_WIN[] = "output image";
int elementSize = 3;
int max_size = 21;
void callback_(int ,void*);
int main(int argc, char const *argv[])
{
//加载图片
src = imread("girl.jpg");
if(!src.data){
cout<< "can't load image"<<endl;
return -1;
}
imshow("src",src);
createTrackbar("Element Size",OUTPUT_WIN,&elementSize,max_size,callback_);
callback_(0,0);
waitKey(0);
return 0;
}
void callback_(int ,void*){
int s = elementSize*2+1;
Mat structureElement = getStructuringElement(MORPH_RECT,Size(s,s),Point(-1,-1));
//膨胀
dilate(src,dst,structureElement);
//腐蚀
// erode(src,dst,structureElement);
imshow("dst",dst);
}