对图像处理时用到的函数及头文件:
#include "stdafx.h" #include "opencv2/opencv.hpp" #include <cv.h> #include <highgui.h> #include <stdio.h> #include <iostream> #include <fstream> #include <opencv2/nonfree/features2d.hpp> using namespace std; using namespace cv; //对image进行平滑处理 void example2_4( IplImage* image ) { IplImage* out = cvCreateImage( cvGetSize(image), //获得输入图片的大小,并进行创建,也可以使用cvSize() IPL_DEPTH_8U, 3 ); //可以在此选择一种,作为自己的滤波方法 cvSmooth( image, out, CV_GAUSSIAN, 5,5 ); //高斯平滑 调节参数平滑程度不同 // cvSmooth( image, out, CV_BLUR ); //对每个象素param1×param2邻域 求和并做尺度变换 // cvSmooth( image, out, CV_BLUR_NO_SCALE ,3,3,3,3 ); //简单不带尺度变换的模糊 // cvSmooth( image, out, CV_MEDIAN,5,5 ); //中值滤波 // cvSmooth( image, out, CV_BILATERAL ,10,10); //双向滤波 cvNamedWindow( "Example2_4-in", CV_WINDOW_AUTOSIZE ); //显示输入图片 cvNamedWindow( "Example2_4-out", CV_WINDOW_AUTOSIZE ); //显示输出图片 cvShowImage( "Example2_4-in", image ); cvShowImage( "Example2_4-out", out ); cvReleaseImage( &out ); cvWaitKey( 0 ); cvDestroyWindow("Example2_4-in" ); cvDestroyWindow("Example2_4-out" ); } int main( int argc, char** argv ) { const char* cNamesmooth="smooth.jpg"; IplImage* img = cvLoadImage(cNamesmooth); example2_4( img ); //调用函数 cvReleaseImage( &img ); }