opencv 的开闭,腐蚀膨胀运算的例子。

本文提供了一个使用OpenCV库进行图像形态学处理的简单示例代码,演示了如何加载图片并应用开运算和腐蚀运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我自己写的使用opencv进行开运算和腐蚀运算的例子。写的很简单。

#include<opencv\cv.h>
#include<opencv\highgui.h>

void main()
{
	IplImage *img = cvLoadImage("hello.jpg",0);
	int array_cross[] ={	0,	0xff,	0,
							0xff,0xff,	0xff,
							0   ,0xff,	0
						};
	int num = 0;
	cvShowImage("img",img);
	IplConvKernel * rectCross= cvCreateStructuringElementEx(3,3,1,1,CV_SHAPE_CROSS,array_cross);
	//cvErode(img,img,rectCross,num);//形态学被腐蚀运算。
	cvMorphologyEx(img,img,NULL,rectCross,CV_MOP_OPEN,num);//形态学开运算。
	cvShowImage("腐蚀",img);
	cvWaitKey();
	//释放内存。
	cvReleaseStructuringElement(&rectCross);
	cvReleaseImage(&img);
}


### C++ 中 OpenCV 的形态学操作 #### 腐蚀操作 腐蚀是一种用于消除图像中小斑点噪声的技术。该过程会减小前景对象的大小,有助于去除较小的对象或分离紧密相连的对象。 ```cpp Mat src = imread("example.jpg", IMREAD_GRAYSCALE); Mat element = getStructuringElement(MORPH_RECT, Size(5, 5)); Mat eroded; erode(src, eroded, element); // 进行一次腐蚀操作 ``` 此代码片段展示了如何创建一个矩形结构元素并应用于输入灰度图`src`以执行腐蚀[^1]。 #### 膨胀操作 膨胀则是与腐蚀相反的过程,它增加了前景对象的尺寸。这通常用来填补物体内部的小孔洞或将断开的部分连接起来。 ```cpp Mat dilated; dilate(eroded, dilated, element); // 对之前被侵蚀过的图片进行膨胀恢复部分细节 ``` 这段程序说明了怎样利用相同的结构化元素对已经经过腐蚀处理后的图像再次加工来达到膨胀效果。 #### 开运算运算是先做腐蚀再做膨胀的操作组合,主要用于平滑轮廓线以及打断狭窄的桥梁状连接部位而不影响较大区域内的形状特性。 ```cpp Mat opened; morphologyEx(dilated, opened, MORPH_OPEN, element); // 使用MORPH_OPEN参数指定开运算模式 ``` 上述例子中定义了一个新的目标矩阵变量opened,并调用了`morphologyEx()`函数指定了要应用的是开运算形式[^3]。 #### 闭运算运算是先膨胀腐蚀的一系列变换,旨在填充小型凹陷处和平整边界上的不连续之处。 ```cpp Mat closed; morphologyEx(opened, closed, MORPH_CLOSE, element); // 利用MORPH_CLOSE参数完成闭合转换 ``` 这里同样借助`morphologyEx()`实现了闭运算逻辑,在传入源图为经由前面几步处理所得的结果的同时设定了特定标志位表示此次为闭运算请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值