读浅墨博客 八 笔记(2)代码

来源:互联网 发布:百度网盘端口 编辑:程序博客网 时间:2024/05/28 05:19

所有滤波总和:

#include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;Mat src, dst1, dst2, dst3;int BoxFilterValue = 3;int MeanBlurValue = 3;int GaussianBlurValue = 3;int MedianBlurValue = 3;int BilateralFiterValue = 3;static void on_BoxFilter(int,void *);static void on_MeanBlur(int,void *);static void on_GussianBlur(int ,void *);static void on_MedianBlur(int, void *);static void on_BilateralFiter(int, void *);int main(){src = imread("1.jpg");if (!src.data)cout << "on,no,can not find the pic" << endl;dst1.create(src.size(),src.type());//dst2.create(src.size(), src.type());//dst3.create(src.size(), src.type());//dst2.create(src.size(), src.type());//dst3.create(src.size(), src.type());imshow("原始图像",src);namedWindow("滤波");createTrackbar("方框滤波内和值:", "滤波", &BoxFilterValue, 40, on_BoxFilter);on_BoxFilter(BoxFilterValue, 0);createTrackbar("均值滤波内和值:", "滤波", &MeanBlurValue, 40, on_MeanBlur);on_MeanBlur(MeanBlurValue, 0);createTrackbar("高斯滤波内和值:", "滤波", &GaussianBlurValue, 40, on_GussianBlur);on_GussianBlur(GaussianBlurValue, 0);createTrackbar("中值滤波内和值:", "滤波", &MedianBlurValue, 40, on_MedianBlur);on_MedianBlur(MedianBlurValue, 0);createTrackbar("双边滤波内和值:", "滤波", &BilateralFiterValue, 40, on_BilateralFiter);on_BilateralFiter(BilateralFiterValue, 0);cout << "开始滚动进行滤波变换吧~~"<< "\n按下“q”,表示退出" << endl;while (char(waitKey(1)) != 'q'){}return 0;}static void on_BoxFilter(int, void *){boxFilter(src, dst1, -1, Size(BoxFilterValue + 1, BoxFilterValue + 1));imshow("滤波", dst1);}static void on_MeanBlur(int, void *){blur(src, dst1, Size(MeanBlurValue + 1, MeanBlurValue + 1), Point(-1, -1));imshow("滤波", dst1);}static void on_GussianBlur(int, void *){GaussianBlur(src, dst1, Size(GaussianBlurValue * 2 + 1, GaussianBlurValue * 2 + 1), 0, 0);imshow("滤波", dst1);}static void on_MedianBlur(int, void *){medianBlur(src, dst1, MedianBlurValue*2+1);imshow("滤波", dst1);}static void on_BilateralFiter(int, void *){bilateralFilter(src, dst1, BilateralFiterValue, BilateralFiterValue * 2, BilateralFiterValue/2);imshow("滤波", dst1);}
注意每个回调函数里的“inshow()”函数。

0 0