专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

Opencv对图像干腐蚀和膨胀处理的结果

发布时间:2011-06-27 19:31:37 文章来源:www.iduyao.cn 采编人员:星星草
Opencv对图像做腐蚀和膨胀处理的结果

在数字图像处理中,图像的形态学变换占有很重要的地位。基本的形态转换就是膨胀和腐蚀,它们能实现多种功能:例如消除噪声、分割出独立的图像元素以及在图像中连接相邻的元素。当然形态学也常备用于求出图像的梯度。

一. 关键函数介绍

下面就介绍OpenCV中对图像进行二值化的关键函数

cvErode()

函数功能:对图像进行腐蚀

函数原型:void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );

函数说明:

src:输入图像.
dst:输出图像.
element:用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素
iterations:腐蚀的次数
cvDilate()
函数功能:对图像进行膨胀
函数原型:void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
函数说明:
src输入图像.
dst输出图像.
element结构元素。若为 NULL, 则使用默认的3×3 长方形,锚点在中间的结构元素,进行膨胀运算
iterations膨胀的次数

二. 示例程序代码

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

const char *pstrSrcWindowsTitle = "原图";
const char *pstrDestWindowsTitle_1 = "对原图腐蚀之后";
const char *pstrDestWindowsTitle_2 = "对原图膨胀之后";
const char *pstrDestWindowsTitle_3 = "对腐蚀过的图片作膨胀";

int main(int argc, char *argv[]){
	IplImage * src_image = cvLoadImage(argv[1]);//加载图片
	cvNamedWindow(pstrDestWindowsTitle_1, CV_WINDOW_AUTOSIZE);//创建窗口用于显示
	cvNamedWindow(pstrSrcWindowsTitle, CV_WINDOW_AUTOSIZE);
	cvShowImage(pstrSrcWindowsTitle, src_image);//显示原图

	//创建两个图片空间用于存放变换过的图片
	IplImage * out_image = cvCreateImage(cvGetSize(src_image),
		IPL_DEPTH_8U,
		3);

	IplImage * out_image_2 = cvCreateImage(cvGetSize(src_image),
		IPL_DEPTH_8U,
		3);

	cvDilate(src_image, out_image, NULL, 2);//膨胀处理,并显示
	cvShowImage(pstrDestWindowsTitle_2, out_image);

	cvErode(src_image, out_image,NULL,2);//腐蚀处理,并显示
	cvShowImage(pstrDestWindowsTitle_1, out_image);

	cvDilate(out_image, out_image_2, NULL, 2);//对腐蚀过的图像再膨胀
	cvShowImage(pstrDestWindowsTitle_3, out_image_2);
	
	waitKey(0);
	return 0;
}





友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: