概述
cvSmooth()函数原型:
CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst,
int smoothtype CV_DEFAULT(CV_GAUSSIAN),int size1 CV_DEFAULT(3),
int size2 CV_DEFAULT(0),
double sigma1 CV_DEFAULT(0),
double sigma2 CV_DEFAULT(0));
五种平滑操作类型
enum
{
CV_BLUR_NO_SCALE =0,//简单模糊
CV_BLUR =1,//简单无缩放变换的模糊
CV_GAUSSIAN =2,//高斯模糊
CV_MEDIAN =3,//中值模糊
CV_BILATERAL =4//双边滤波
};
原图:img_in
#include <highgui.h>
#include<cv.h>
using namespace std;
int main()
{
IplImage *img_in = cvLoadImage("test.jpg",3);
IplImage *img_out1 = cvCreateImage(cvSize(220,240),IPL_DEPTH_8U,3);
IplImage *img_out2 = cvCreateImage(cvSize(220,240),IPL_DEPTH_16S,3);
IplImage *img_out3 = cvCreateImage(cvSize(220,240),IPL_DEPTH_8U,3);
IplImage *img_out4 = cvCreateImage(cvSize(220,240),IPL_DEPTH_8U,3);
IplImage *img_out5 = cvCreateImage(cvSize(220,240),IPL_DEPTH_8U,3);
cvNamedWindow("img_in",CV_WINDOW_AUTOSIZE);
cvShowImage("img_in",img_in);
cvSmooth(img_in,img_out1,CV_BLUR,3,0,0,0);
cvSmooth(img_in,img_out2,CV_BLUR_NO_SCALE,3,0,0,0);
cvSmooth(img_in,img_out3,CV_GAUSSIAN,3,0,0,0);
cvSmooth(img_in,img_out4,CV_MEDIAN,3,0,10,10);
cvSmooth(img_in,img_out5,CV_BILATERAL,3,0,10,10);
cvNamedWindow("CV_BLUR",CV_WINDOW_AUTOSIZE);
cvShowImage("CV_BLUR",img_out1);
cvNamedWindow("CV_BLUR_NO_SCALE",CV_WINDOW_AUTOSIZE);
cvShowImage("CV_BLUR_NO_SCALE",img_out2);
cvNamedWindow("CV_GAUSSIAN",CV_WINDOW_AUTOSIZE);
cvShowImage("CV_GAUSSIAN",img_out3);
cvNamedWindow("CV_MEDIAN",CV_WINDOW_AUTOSIZE);
cvShowImage("CV_MEDIAN",img_out4);
cvNamedWindow("CV_BILATERAL",CV_WINDOW_AUTOSIZE);
cvShowImage("CV_BILATERAL",img_out5);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&img_out1);
cvReleaseImage(&img_out2);
cvReleaseImage(&img_out3);
cvReleaseImage(&img_out4);
cvReleaseImage(&img_out5);
return 0;
}
运行结果:
最后
以上就是成就水杯为你收集整理的OpenCV五种平滑处理(模糊处理)的全部内容,希望文章能够帮你解决OpenCV五种平滑处理(模糊处理)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复