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

《学习OpenCV》练习5-1

2014-02-15 18:51 316 查看
#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;
}

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