OpenCV-图像滤波
来源:互联网 发布:双色球七加一中奖算法 编辑:程序博客网 时间:2024/06/04 19:32
OpenCV图像滤波的操作有:
方框滤波
均值块滤波
高斯滤波
中值滤波
双边滤波
本文主要进行一幅图像进行上述滤波操作
具体实现代码:
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream> using namespace std;using namespace cv;Mat g_srcImage, g_dstImage1, g_dstImage2, g_dstImage3, g_dstImage4, g_dstImage5;int g_nBoxFilterValue = 6; //方框滤波内核值int g_nMeanBlurValue = 10; //均值滤波内核值int g_nGaussianBlurValue = 6; //高斯滤波内核值int g_nMedianBlurValue = 10; //中值滤波参数值int g_nBilateralFilterValue = 10; //双边滤波参数值static void on_BoxFilter(int, void *); //方框滤波static void on_MeanBlur(int, void *); //均值块滤波器static void on_GaussianBlur(int, void *); //高斯滤波器static void on_MedianBlur(int, void *); //中值滤波器static void on_BilateralFilter(int, void *); //双边滤波器int main(){// 载入原图g_srcImage = imread("C://Users/long/Pictures/long.jpg", 1);//克隆原图到四个Mat类型中g_dstImage1 = g_srcImage.clone();g_dstImage2 = g_srcImage.clone();g_dstImage3 = g_srcImage.clone();g_dstImage4 = g_srcImage.clone();g_dstImage5 = g_srcImage.clone();//显示原图namedWindow("【原图窗口】", 1);imshow("【原图窗口】", g_srcImage);//方框滤波//创建窗口namedWindow("【方框滤波】", 1);//创建轨迹条createTrackbar("内核值:", "【方框滤波】", &g_nBoxFilterValue, 50, on_BoxFilter);on_MeanBlur(g_nBoxFilterValue, 0);imshow("【方框滤波】", g_dstImage1);//均值滤波//创建窗口namedWindow("【均值滤波】", 1);//创建轨迹条createTrackbar("内核值:", "【均值滤波】", &g_nMeanBlurValue, 50, on_MeanBlur);on_MeanBlur(g_nMeanBlurValue, 0);//高斯滤波//创建窗口namedWindow("【高斯滤波】", 1);//创建轨迹条createTrackbar("内核值:", "【高斯滤波】", &g_nGaussianBlurValue, 50, on_GaussianBlur);on_GaussianBlur(g_nGaussianBlurValue, 0);//中值滤波//创建窗口namedWindow("【中值滤波】", 1);//创建轨迹条createTrackbar("参数值:", "【中值滤波】", &g_nMedianBlurValue, 50, on_MedianBlur);on_MedianBlur(g_nMedianBlurValue, 0);//双边滤波//创建窗口namedWindow("【双边滤波】", 1);//创建轨迹条createTrackbar("参数值:", "【双边滤波】", &g_nBilateralFilterValue, 50, on_BilateralFilter);on_BilateralFilter(g_nBilateralFilterValue, 0);while (char(waitKey(1)) != 'q') {}return 0;}//方框滤波操作的回调函数static void on_BoxFilter(int, void *){//方框滤波操作boxFilter(g_srcImage, g_dstImage1, -1, Size(g_nBoxFilterValue + 1, g_nBoxFilterValue + 1));//显示窗口imshow("【方框滤波】", g_dstImage1);}//均值滤波操作的回调函数static void on_MeanBlur(int, void *){blur(g_srcImage, g_dstImage2, Size(g_nMeanBlurValue + 1, g_nMeanBlurValue + 1), Point(-1, -1));imshow("【均值滤波】", g_dstImage2);}//高斯滤波操作的回调函数static void on_GaussianBlur(int, void *){GaussianBlur(g_srcImage, g_dstImage3, Size(g_nGaussianBlurValue * 2 + 1, g_nGaussianBlurValue * 2 + 1), 0, 0);imshow("【高斯滤波】", g_dstImage3);}//中值滤波操作的回调函数static void on_MedianBlur(int, void *){medianBlur(g_srcImage, g_dstImage4, g_nMedianBlurValue * 2 + 1);imshow("【中值滤波】", g_dstImage4);}//双边滤波操作的回调函数static void on_BilateralFilter(int, void *){bilateralFilter(g_srcImage, g_dstImage5, g_nBilateralFilterValue, g_nBilateralFilterValue * 2, g_nBilateralFilterValue / 2);imshow("【双边滤波】", g_dstImage5);}
运行结果:
阅读全文
1 0
- opencv-图像滤波
- Opencv中图像滤波
- opencv之 图像滤波
- OpenCV图像滤波
- openCV 图像滤波
- opencv(13)---图像滤波
- opencv --图像滤波
- OpenCV-图像滤波
- OpenCV图像各向异性滤波
- OpenCv-Python 图像滤波
- 【OpenCV】图像滤波 Image Filtering
- 【OpenCV】图像滤波 Image Filtering
- OpenCV之图像滤波简述
- opencv学习之图像滤波
- OpenCV GaussianBlur() 图像平滑滤波
- OpenCV学习——图像卷积滤波
- 《实用OpenCV》<五> 图像滤波(1)
- 《实用OpenCV》<五> 图像滤波(2)
- vue.js样式绑定
- 文档和配置管理基础
- CPU load过高产生的原因及排查
- 孪生素数
- 计蒜客 The Heaviest Non-decreasing Subsequence Problem(最大权值和非递减子序列)
- OpenCV-图像滤波
- 最大上升子序列
- 深拷贝&浅拷贝
- dalao的tajan模板
- CNN学习----创建自己的数据集
- 2017年9月24日周记
- 逻辑命令
- Android系统中常用的Uri
- 用jquery实现图片轮播