opencv 滤波

来源:互联网 发布:仓鼠翻译软件 编辑:程序博客网 时间:2024/06/08 01:33
//方框滤波#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src;int sizeval=3;static void on_tracker(int ,void *){  Mat src1 = src;  Mat out;  boxFilter(src1,out,-1,Size(sizeval,sizeval));  imshow("src",out);}int  main(){   src = imread("e:/jiansheng.jpg");   namedWindow("src",CV_WINDOW_AUTOSIZE);   createTrackbar("核函数宽度","src",&sizeval,21,on_tracker);//创建滑动条   on_tracker(sizeval,0); //回调函数   waitKey();   return 0;}



//均值滤波#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src;int sizeval=3;static void on_tracker(int ,void *){  Mat src1 = src;  Mat out;  if(sizeval>1)  {blur(src1,out,Size(sizeval,sizeval));  imshow("src",out);  }}int  main(){   src = imread("e:/jiansheng.jpg");   namedWindow("src",CV_WINDOW_AUTOSIZE);   createTrackbar("核函数宽度","src",&sizeval,21,on_tracker);//创建滑动条   on_tracker(sizeval,0); //回调函数   waitKey();   return 0;}


高斯滤波

#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src;int sizeval=3;static void on_tracker(int ,void *){  Mat src1 = src;  Mat out;  if(sizeval>1)  {GaussianBlur(src1,out,Size(sizeval,sizeval),0,0);  imshow("src",out);  }}int  main(){   src = imread("e:/jiansheng.jpg");   namedWindow("src",CV_WINDOW_AUTOSIZE);   createTrackbar("核函数宽度","src",&sizeval,21,on_tracker);//创建滑动条   on_tracker(sizeval,0); //回调函数   waitKey();   return 0;}

中值滤波

#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src;int sizeval=3;static void on_tracker(int ,void *){  Mat src1 = src;  Mat out;  if(sizeval>1)  {medianBlur(src1,out,sizeval);  imshow("src",out);  }}int  main(){   src = imread("e:/jiansheng.jpg");   namedWindow("src",CV_WINDOW_AUTOSIZE);   createTrackbar("核函数宽度","src",&sizeval,21,on_tracker);//创建滑动条   on_tracker(sizeval,0); //回调函数   waitKey();   return 0;}

双边滤波

#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src;int sizeval=25;static void on_tracker(int ,void *){  Mat src1 = src;  Mat out;  if(sizeval>1)  {bilateralFilter(src1,out,sizeval,sizeval*2,sizeval/2);  imshow("src",out);  }}int  main(){   src = imread("e:/huangshan.jpg");   namedWindow("src",CV_WINDOW_AUTOSIZE);   createTrackbar("核函数宽度","src",&sizeval,30,on_tracker);//创建滑动条   on_tracker(sizeval,0); //回调函数   waitKey();   system("pause");   return 0;}


0 0