#include "cv.h"
#include "highgui.h"
#include "stdio.h"
//*****************************************************
//主函数
//*****************************************************
int main()
{
/*导入源图像,并为源图像生成窗口并显示*/
IplImage* sorce_img = cvLoadImage( "homework_5-1.jpg" );
if (!sorce_img)
{
printf( "can not find %d.\n", "homework_5-1.jpg" );
return -1;
}
cvNamedWindow( "sorce_img",CV_WINDOW_AUTOSIZE );
cvShowImage( "sorce_img", sorce_img );
/*为处理后的图像生成的窗口*/
cvNamedWindow( "gauss_3x3",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "gauss_5x5",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "gauss_9x9",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "gauss_11x11",CV_WINDOW_AUTOSIZE );
/*要处理的图像的定义*/
IplImage* gauss_3x3 = cvCreateImage( cvGetSize(sorce_img), IPL_DEPTH_8U, 3 );
IplImage* gauss_5x5 = cvCreateImage( cvGetSize(sorce_img), IPL_DEPTH_8U, 3 );
IplImage* gauss_9x9 = cvCreateImage( cvGetSize(sorce_img), IPL_DEPTH_8U, 3 );
IplImage* gauss_11x11 = cvCreateImage( cvGetSize(sorce_img), IPL_DEPTH_8U, 3 );
/*对要处理的图像进行高斯平滑处理*/
cvSmooth( sorce_img, gauss_3x3, CV_GAUSSIAN, 3, 3 );
cvSmooth( sorce_img, gauss_5x5, CV_GAUSSIAN, 5, 5 );
cvSmooth( sorce_img, gauss_9x9, CV_GAUSSIAN, 9, 9 );
cvSmooth( sorce_img, gauss_11x11, CV_GAUSSIAN, 11, 11 );
/*对要处理的图像进行简单平滑处理*/
// cvSmooth( sorce_img, gauss_3x3, CV_BLUR, 3, 3 );
// cvSmooth( sorce_img, gauss_5x5, CV_BLUR, 5, 5 );
// cvSmooth( sorce_img, gauss_9x9, CV_BLUR, 9, 9 );
// cvSmooth( sorce_img, gauss_11x11, CV_BLUR, 11, 11 );
/*显示进行处理后的图像*/
cvShowImage( "gauss_3x3", gauss_3x3 );
cvShowImage( "gauss_5x5", gauss_5x5 );
cvShowImage( "gauss_9x9", gauss_9x9 );
cvShowImage( "gauss_11x11", gauss_11x11 );
/*释放内存并销毁窗口*/
cvWaitKey( 0 );
cvReleaseImage( &sorce_img );
cvReleaseImage( &gauss_3x3 );
cvReleaseImage( &gauss_5x5 );
cvReleaseImage( &gauss_9x9 );
cvReleaseImage( &gauss_11x11 );
cvDestroyAllWindows;
return 0;
}
《学习OpenCV》练习5-1
最新推荐文章于 2025-07-19 17:43:21 发布