opencv学习之路(14)、形态学之膨胀腐蚀(一)

一、膨胀腐蚀概述(对高亮部分进行操作)

二、膨胀

三、腐蚀

四、代码

1.查看结构元素

 1 #include<opencv2/opencv.hpp>
 2 #include<iostream>
 3 using namespace cv;
 4 using namespace std;
 5
 6 void main(){
 7     Mat element=getStructuringElement(MORPH_RECT,Size(5,5));
 8     Mat element2=getStructuringElement(MORPH_CROSS,Size(5,5));
 9     Mat element3=getStructuringElement(MORPH_ELLIPSE,Size(5,5));
10     cout<<endl<<element<<endl;
11     cout<<endl<<element2<<endl;
12     cout<<endl<<element3<<endl;
13 }

按下ctrl+F5进行调试

由此可见,一般用MORPH_RECT结构元素。

2.对图像进行膨胀腐蚀操作

 1 #include<opencv2/opencv.hpp>
 2 using namespace cv;
 3
 4 void main(){
 5     Mat src=imread("E://1.jpg");
 6     Mat dst;
 7     Mat element=getStructuringElement(MORPH_RECT,Size(5,5));
 8     dilate(src,dst,element,Point(-1,-1),1);//膨胀一次,(-1,-1)表示取中心位置
 9     //erode(src,dst,element,Point(-1,-1),2);//腐蚀两次
10
11     imshow("src",src);
12     imshow("dst",dst);
13     waitKey(0);
14 }

膨胀效果如下:

腐蚀效果如下:

时间: 2024-10-26 02:35:43

opencv学习之路(14)、形态学之膨胀腐蚀(一)的相关文章

opencv学习之路(15)、形态学其他操作(开、闭、顶帽、黑帽、形态学梯度)

一.形态学其他操作(用的不多,如果忘了也可以通过膨胀腐蚀得到相同效果) 1.开运算 2.闭运算 3.形态学梯度 4.顶帽 5.黑帽 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 4 void main() 5 { 6 Mat srcImg = imread("E://1.jpg"); 7 Mat dstImg; 8 Mat element = getStructuringElement(MORPH_R

opencv-图像形态学之膨胀腐蚀

转自:https://blog.csdn.net/poem_qianmo/article/details/23710721 一.原理 1.1 形态学概述 形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构.而我们图像处理中指的形态学,往往表示的是数学形态学.下面一起来了解数学形态学的概念. 数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论.其基本的运算包括:二值腐

OpenCV学习 7:图像形态学:腐蚀、膨胀

原创文章,欢迎转载,转载请注明出处 首先什么是图像形态学?额,这个抄下百度到的答案.基本思想:    用具有一定形态的结构元素去度量和提取图像中的对应形状已达到对图像分析和识别的目的,形态学图像处理表现为一种领域运算方式(这个和前面的模糊运算是一样的运算方式),效果取决于结构元素(就是前面smooth里面的核)的大小,内容以及逻辑运算的性质.看了这些定义是不是很晕,对很晕...我比较关心的是它的用途和怎么计算.    用途是:简化图像数据,保持他们基本的形状特性,并出去不相干的结构.    基本

[opencv]学习之路

参考这个人的教程: 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 2016年9月7日 花了一个早上,才配置好了环境.然后系统有错误就开始崩盘,我也是跟着浅墨大神走的,最后还是女神比较给力,遇见了跟我一样的情况,在她的指导下,走出困境! 基本结构

opencv学习之路(25)、轮廓查找与绘制(四)——正外接矩形

一.简介 二.外接矩形的查找绘制 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 void main() 4 { 5 //外接矩形的查找绘制 6 Mat srcImg =imread("E://12.jpg"); 7 imshow("src",srcImg); 8 Mat dstImg = srcImg.clone(); //原图备份 9 cvtColor(srcImg, srcIm

opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形

一.简介 二.轮廓最小外接矩形的绘制 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 4 void main() 5 { 6 //轮廓最小外接矩形的绘制 7 Mat srcImg = imread("E://00.png"); 8 Mat dstImg = srcImg.clone(); 9 cvtColor(srcImg, srcImg, CV_BGR2GRAY); 10 threshold(srcI

opencv学习之路(21)、模板匹配及应用

一.模板匹配概念 二.单模板匹配 1 #include "opencv2/opencv.hpp" 2 #include <iostream> 3 using namespace std; 4 using namespace cv; 5 6 void main() 7 { 8 Mat temp=imread("E://mu.jpg"); 9 Mat src=imread("E://lena.jpg"); 10 Mat dst=src.c

opencv学习之路(20)、直方图应用

一.直方图均衡化--equalizeHist() 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 4 void main() 5 { 6 Mat srcImg = imread("E://02.jpg", 0); //以灰度方式打开,需要输入单通道图像 7 imshow("src", srcImg); 8 Mat dstImg; //均衡化后的图像 9 equalizeHist(sr

opencv学习之路(17)、边缘检测

一.概述 二.canny边缘检测 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 4 void main() 5 { 6 //Canny边缘检测 7 Mat srcImg = imread("E://1.png",0); //0表示以灰度图读入,彩色图和灰度图进行边缘检测时略有不同,建议使用灰度图 8 //medianBlur(srcImg, srcImg,5);//中值滤波 9 imshow(&quo