首页 > 代码库 > OpenCV 载入一副图像并进行平滑处理

OpenCV 载入一副图像并进行平滑处理

作者:卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/33758877


一、使用OpenCV载入一副图像并进行平滑处理

#include "opencv\highgui.h"  
#include "opencv\cv.h"

int main()  
{
	cvNamedWindow("平滑前"); //创建窗体
	cvNamedWindow("平滑后"); //创建窗体

	IplImage *image = cvLoadImage("zqbb.jpg");  //载入图片
	cvShowImage("平滑前",image);//显示图片
	                           //参数:结构大小       数据类型   3通道
	IplImage *smooth = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
	//使每个像素点周围9*9区域进行高斯平滑
	cvSmooth(image,smooth,CV_GAUSSIAN,9,9);//平滑处理

	cvShowImage("平滑后",smooth);//显示图片

	cvWaitKey();
	cvReleaseImage(&image);
	cvDestroyWindow("平滑前");
	cvReleaseImage(&smooth);
	cvDestroyWindow("平滑后");
    return 0;  
}  

二、平滑效果


网上搜的,足球宝贝~~~(*^__^*) 嘻嘻……

三、平滑说明

      事实上,cvCreateFileCapture()只分配一帧图像的空间,每次调用时覆盖前面一次的数据(这样每次调用返回的指针是一样的)。在这种情况下,我们想分配自己的图像结构空间来存储平滑处理后的图像。

  • 第一个参数时一个CvSize结构,这个结构可以通过cvGetSize(image)方便获得;说明当前图像结构的大小。
  • 第二个参数告诉我们个个通道每个像素点的数据类型,最后一个参数说明通道的总数。


参考文献:(美)布拉德斯基(Bradski,G.),(美)克勒(Kaehler,A.) 著,于仕琪,刘瑞祯 译.学习OpenCV(中文版)[M].北京:清华大学出版社,2009.26-27.