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

OpenCV之图像基本操作

时间:2014-05-26 03:47:36      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:opencv

图像的输入输出

C风格的操作:

	const char *pstrImageName = "秽土转生第七版.jpg";
	const char *pstrWindowsTitle = "窗口标题";
	//从文件中读取图像
	IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);

	//创建窗口
	cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);

	//在指定窗口中显示图像
	cvShowImage(pstrWindowsTitle, pImage);

	//等待按键事件
	cvWaitKey();

	cvDestroyWindow(pstrWindowsTitle);
	cvReleaseImage(&pImage);
C++风格的操作

        Mat img = imread(pstrImageName);
	imshow(pstrWindowsTitle, img);
	//等待按键事件
	cvWaitKey();

显示图像为:

bubuko.com,布布扣

可以看出使用C++风格的操作优势明显,只需要两步操作即可显示图像,并且不用手动释放资源,开发过程中再也不用担心资源泄漏了。

彩色图像转换为灰度图像

	Mat src_mat = imread(pstrImageName);
	Mat gray_mat;
	cvtColor(src_mat, gray_mat, CV_BGR2GRAY);
	imshow("原始图", src_mat);
	imshow("灰度图", gray_mat);
	waitKey(0);

以上代码也是采用C++风格操作的,C风格的图像转换函数为void cvCvtColor(const CvArr* src, CvArr* dst, int code)

注意:在OpenCV中,函数名与结构体名的前面以cv和Cv为前缀的都是C风格代码

源彩色图像与灰度图像分别为:

bubuko.com,布布扣


图像复制

有两种复制方式,分别为clone(), copyTo();代码如下:

	Mat cpy_gray = gray_mat.clone(); 
	Mat cpy_gray2;
	gray_mat.copyTo(cpy_gray2);
	imshow("clone()复制图像", cpy_gray);
	imshow("copyTo()复制图像", cpy_gray2);

未完待续

OpenCV之图像基本操作,布布扣,bubuko.com

OpenCV之图像基本操作

标签:opencv

原文地址:http://blog.csdn.net/lming_08/article/details/26624941

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