码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-16 16:35:13      阅读:242      评论:0      收藏:0      [点我收藏+]

标签: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;
}
技术分享




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

标签:opencv   图像处理   膨胀   腐蚀   

原文地址:http://blog.csdn.net/embedclub_lyf/article/details/44305961

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!