读浅墨博客 八 笔记(2)代码
2015-05-30 18:00
267 查看
所有滤波总和:
#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()”函数。
相关文章推荐
- 复习java API standard
- java web中向PostgreSQL插入当前时间
- C++用模板求解开方(你不得不知道的模板带给我们的运行效率)
- 在Python的Django框架中simple-todo工具的简单使用
- 【C#】 26. 关于IEnumerable和IEnumerator
- 解决Eclipse下第三方库无法导航源代码
- <Python基础教程>_第四章_总结
- Lua 的模块安装和部署工具 - LuaRocks
- matlab 输入一个字符串,写入到图像中, 并可读出
- LuaSocket
- Java中equals()与hashCode()方法详解
- GitHub搭博客
- JSR-303 Spring MVC 消息国际化 配置
- C++ 构造与析构的执行顺序
- laravel 4 after filter 添加返回参数到原来的返回值中
- Python爬虫爬取网页图片
- eclipse配置java web开发环境
- Python中Django框架下的staticfiles使用简介
- could not create the java virtual machine
- 【Maximum Subarray 】cpp