本文参考@浅墨_毛星云 出品,文章链接: http://blog.csdn.net/poem_qianmo/article/details/23710721
已经连续几天学习他的系列文章,确实很适合我这种没有图像处理知识体系的小白入门,原理都讲清楚了,也很生动,比自己看原理方面的书容易懂得多,
再次感谢@浅墨_毛星云博主,坚持就是胜利,继续写笔记~
学习【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀----理论知识已经整理成思维导图笔记,给出贴图:图太大了,可以另存再打开~
综合示例:根据自己的理解(上完整代码)
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
//定义全局变量
Mat src,dst1,dst2,kel1,kel2;
int dilateValue=3;
int erodeValue=3;
//dilate膨胀操作
void dilate_do(int,void*)
{
//膨胀操作的核kel1
kel1=getStructuringElement(MORPH_RECT,Size(dilateValue+1,dilateValue+1));
dilate(src,dst1,kel1);
if(!dst1.empty())
{
imshow("效果图",dst1);
}
}
//erode腐蚀操作
void erode_do(int,void*)
{
//腐蚀操作的核kel2
kel2=getStructuringElement(MORPH_RECT,Size(erodeValue+1,erodeValue+1));
erode(src,dst2,kel2);
if(!dst2.empty())
{
imshow("效果图",dst2);
}
}
int main()
{
src=imread("img/dot.jpg");
namedWindow("原图");
imshow("原图",src);
namedWindow("效果图");
dst1=src.clone();
dst2=src.clone();
createTrackbar("膨胀核","效果图",&dilateValue,20,dilate_do);
createTrackbar("腐蚀核","效果图",&erodeValue,20,erode_do);
dilate_do(dilateValue,0);
erode_do(erodeValue,0);
waitKey();
return 0;
}
原图:这个黑白点的图,能看得更清楚
膨胀效果图:高亮区域更大
腐蚀效果图:高亮区域变黑