基于opencv对图片进行高斯滤波
程序如下:
滤波前后图片对比:
这个程序其实很简单,一部分只主函数,然后调用一个滤波函数,下面具解释程序:
int main( int argc, char** argv )
{
IplImage * img = cvLoadImage("\\vs2008\\project\\fiilter\\lena.jpg"); //读图程序
cvNamedWindow("滤波前", CV_WINDOW_AUTOSIZE );//设置显示图片的窗口
cvShowImage("滤波前", img );//opencv显示滤波前的图片
smootH( img );//调用滤波函数
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow("滤波前");
}
void smootH( IplImage* image )
{
cvNamedWindow( "滤波后", CV_WINDOW_AUTOSIZE );
IplImage* out = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U, 3);//获取图片的大小,像素的数据类型,是几通道图品
cvSmooth( image, out, CV_GAUSSIAN, 7,7 );//opencv中高斯滤波模板
cvShowImage( "滤波后", out );
cvReleaseImage( &out );
cvWaitKey( 0 );
cvDestroyWindow("滤波后" );
}