#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;
}