您的位置:首页 > 运维架构

《学习OpenCV》练习5-2

2014-02-15 18:55 316 查看
#include "cv.h"
#include "highgui.h"
#include "stdio.h"

//*****************************************************
//主函数
//*****************************************************
int main()
{
/*创建一幅源图像,全黑,中间一点白*/
IplImage* sorce_image = cvCreateImage( cvSize(400,400), IPL_DEPTH_8U, 1 );
cvZero( sorce_image );
cvSet2D( sorce_image, 200, 200, cvScalar(255) );
cvNamedWindow( "sorce_image", CV_WINDOW_AUTOSIZE );
cvShowImage( "sorce_image", sorce_image );

/*为处理后的图像生成的窗口*/
cvNamedWindow( "gauss_5x5",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "gauss_5x5x2",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "gauss_9x9",CV_WINDOW_AUTOSIZE );

/*要处理的图像的定义*/
IplImage* gauss_5x5 = cvCreateImage( cvGetSize(sorce_image), IPL_DEPTH_8U, 1 );
IplImage* gauss_5x5x2 = cvCreateImage( cvGetSize(sorce_image), IPL_DEPTH_8U, 1 );
IplImage* gauss_9x9 = cvCreateImage( cvGetSize(sorce_image), IPL_DEPTH_8U, 1 );

/*对要处理的图像进行高斯平滑处理*/
cvSmooth( sorce_image, gauss_5x5, CV_GAUSSIAN, 5, 5 );
cvSmooth( gauss_5x5, gauss_5x5x2, CV_GAUSSIAN, 5, 5 );		//进行第二次高斯模糊处理
cvSmooth( sorce_image, gauss_9x9, CV_GAUSSIAN, 9, 9 );

/*显示进行处理后的图像*/
cvShowImage( "gauss_5x5", gauss_5x5 );
cvShowImage( "gauss_5x5x2", gauss_5x5x2 );
cvShowImage( "gauss_9x9", gauss_9x9 );

/*释放内存并销毁窗口*/
cvWaitKey( 0 );
cvReleaseImage( &sorce_image );
cvReleaseImage( &gauss_5x5 );
cvReleaseImage( &gauss_5x5x2 );
cvReleaseImage( &gauss_9x9 );
cvDestroyAllWindows;

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c opencv 图形 图像处理