opencv学习之路(12)、图像滤波
一、图像滤波简介


二、方框滤波——boxFilter()


#include<opencv2/opencv.hpp>
using namespace cv; void main(){
Mat src=imread("E://1.jpg");
Mat dst;
//方框滤波器,-1代表原图像深度,size内核大小,true按权重相加(此时等于均值滤波),false按原像素相加(所以很多像素点都大于了255,如上图所示)
boxFilter(src,dst,-,Size(,),Point(-,-),true);
imshow("src",src);
imshow("dst",dst);
waitKey();
}

三、均值滤波——blur()


四、高斯滤波——GaussianBlur()


以上是线性滤波(方框,均值,高斯)
以下是非线性滤波(中值,双边)
五、中值滤波——medianBlur(有效去除脉冲噪声和椒盐噪声)


六、双边滤波——bilateralFilter()

#include<opencv2/opencv.hpp>
using namespace cv; void main(){
Mat src=imread("E://1.jpg");
Mat dst; //boxFilter(src,dst,-1,Size(3,3),Point(-1,-1),true);//方框滤波器
//blur(src,dst,Size(5,5));//均值滤波
//GaussianBlur(src,dst,Size(5,5),1);//高斯滤波
//medianBlur(src,dst,5);//中值滤波
bilateralFilter(src,dst,,10.0,2.0);//双边滤波 imshow("src",src);
imshow("dst",dst);
waitKey();
}
七、滑动条调整内核大小
#include<opencv2/opencv.hpp>
using namespace cv;
Mat dst;
int value=; void onChange(int,void* param){
Mat src=*(Mat *)param;
if(value%==){
medianBlur(src,dst,value-);//中值滤波的第三个参数为奇数
}
else
{
medianBlur(src,dst,value);
}
imshow("windows",dst);
} void main(){
Mat src=imread("E://1.jpg");
namedWindow("windows",CV_WINDOW_AUTOSIZE);
createTrackbar("滑动条","windows",&value,,onChange,&src);//最后一个参数若设置为0,移动滑动条时会报错
medianBlur(src,dst,);
imshow("windows",dst);
waitKey();
}

opencv学习之路(12)、图像滤波的更多相关文章
- OpenCV成长之路:图像滤波
http://ronny.blog.51cto.com/8801997/1394138 OpenCV成长之路:图像滤波 2014-04-11 14:28:44 标签:opencv 边缘检测 sobel ...
- OpenCV成长之路:图像直方图的应用
OpenCV成长之路:图像直方图的应用 2014-04-11 13:57:03 标签:opencv 图像 直方图 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...
- 【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- opencv第三课,图像滤波
1.介绍 OpenCV图像处理技术中比较热门的图像滤波操作主要被分为了两大类:线性邻域滤波和非线性滤波.线性邻域滤波常见的有“方框滤波“,”均值滤波“和”高斯滤波“三种,二常见的非线性滤波主要是中值滤 ...
- opencv学习之路【四】——opencv文件结构介绍
这里要感谢这篇博主的文章 部分内容转载自此 opencv在2.3版本之前 都是用的c语言实现的 而在2.3以后的版本 做了很多重大的改变 其中最主要的是用c++重写大部分结构 然后文件的结构和2.0之 ...
- opencv学习之路(30)、分水岭算法及图像修补
一.简介 二.分水岭算法 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat srcImg = ...
- opencv学习之路(13)、图像阈值化threshold
一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...
- opencv学习之路(11)、图像几何变换
一.图像缩放 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E:// ...
- opencv学习之路(8)、基本图像运算——加减与或
一.图像加法 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespa ...
随机推荐
- leetcode 300最长上升子序列
用递归DFS遍历所有组合肯定积分会超时,原因是有很多重复的操作,可以想象每次回溯后肯定会有重复操作.所以改用动态规划.建立一个vector<int>memo,初始化为1,memo[i]表示 ...
- Appium环境搭建(一)
python环境做测试,需要准备工具如下: 1.python2.7(这里使用的是python2你也可以选更高版本) 2.Appium(Window版) 3.Android SDK 4.Appium_P ...
- PHP socket通信之UDP
服务端: //服务器信息 $server = 'udp://127.0.0.1:9998'; //消息结束符号 $msg_eof = "\n"; $socket = stream_ ...
- 实时计算DStream下求平均值(reduceByKey or combineByKey)
对NC市的卡口数据进行分析,大概所有卡口每15秒接入的有效数据在3000条左右,现在产品经理要求对这些数据进行拥堵分析,通过两个卡口之间的车辆行驶时长来判断道路的拥堵情况.具体算法不展开.其中我需要做 ...
- RSA 加解密 秘钥对说明
rsa非对称加密, 加解密需要不同的秘钥,称作一对. rsa加解密分两种,第一:公钥加密私钥解密.第二:私钥加密公钥解密. 需要注意的是,公加私解得到的密文是变化的,而私加公解的得到的密文是固定的. ...
- composer----------composer基本命令和遇到一些问题解决方案
1.composer跟xdebug有冲突,每次用composer命令的时候都要报xdebug的错误,去php的配置文件里面将xdebug注释掉就可以了,但是我注释掉了以后还是不行.找了半天才看到,我用 ...
- jQuery-表格属性
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- meta 跳转
强无敌. 是否厌倦了页面枯燥的跳转? 试试这样的跳转吧. Duration:表示滤镜特效的持续时间(单位:秒) Transition:滤镜类型.表示使用哪种特效,取值为0-23. <Meta h ...
- day1 hbuilder的使用
一.互联网的原理 1.概述 html:用来制作网页. 互联网原理:上网即请求数据. 用户通过在浏览器上输入一个网址,通过HTTP协议向服务器发送请求,服务器做出响应,将相关的网页数据传输到本地计算机, ...
- html5常用数学 公式的用法
<script> // alert(Math.PI); // alert(Math.floor(3.16)); // var a=Math.ceil(3. ...