一、图像滤波简介

二、方框滤波——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)、图像滤波的更多相关文章

  1. OpenCV成长之路:图像滤波

    http://ronny.blog.51cto.com/8801997/1394138 OpenCV成长之路:图像滤波 2014-04-11 14:28:44 标签:opencv 边缘检测 sobel ...

  2. OpenCV成长之路:图像直方图的应用

    OpenCV成长之路:图像直方图的应用 2014-04-11 13:57:03 标签:opencv 图像 直方图 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...

  3. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  4. opencv第三课,图像滤波

    1.介绍 OpenCV图像处理技术中比较热门的图像滤波操作主要被分为了两大类:线性邻域滤波和非线性滤波.线性邻域滤波常见的有“方框滤波“,”均值滤波“和”高斯滤波“三种,二常见的非线性滤波主要是中值滤 ...

  5. opencv学习之路【四】——opencv文件结构介绍

    这里要感谢这篇博主的文章 部分内容转载自此 opencv在2.3版本之前 都是用的c语言实现的 而在2.3以后的版本 做了很多重大的改变 其中最主要的是用c++重写大部分结构 然后文件的结构和2.0之 ...

  6. opencv学习之路(30)、分水岭算法及图像修补

    一.简介 二.分水岭算法 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat srcImg = ...

  7. opencv学习之路(13)、图像阈值化threshold

    一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...

  8. opencv学习之路(11)、图像几何变换

    一.图像缩放 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E:// ...

  9. opencv学习之路(8)、基本图像运算——加减与或

    一.图像加法 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespa ...

随机推荐

  1. gcc 6.2.0/6.3.0/8.2.0 编译安装

    参考:http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html 下载地址在这里:https://ftp.gnu.org/gnu ...

  2. opencv之模糊处理

    初学OpenCV的开发者很容易被OpenCV中各种滤波方法所困扰,不知道到底该用哪里一个来做滤波.表面原因看起来是因为OpenCV中各种滤波方式实在是太多太杂, 其背后原因是对各种滤波方法的应用场景认 ...

  3. Hive自定义函数UDF和UDTF

    UDF(user defined functions) 用于处理单行数据,并生成单个数据行. PS: l 一个普通UDF必须继承自“org.apache.hadoop.hive.ql.exec.UDF ...

  4. SpringMVC.入门篇.一.HelloWorld

    SpringMVC.入门篇<一>HelloWorld 项目包结构如下: HelloController.java 代码 package com.charles.controller; im ...

  5. 记工作中用到的抓取oracle表结构的sql语句

    以下是SQL,生成的结果中是否为主键和是否可为空,是不准确的 ,没有关联相关的系统表: select '' as 业务源系统, t2.TABLE_NAME 表名称, nvl(t3.comments,' ...

  6. strlen实现

    1.strlen函数. 普通版实现方法, int strlen( char *s) { int length = 0; while(*s++) length++; return length; } 优 ...

  7. U盘自动拷贝

    描述:启动该程序后,自动检测U盘是否存在,若存在,将U盘中所有的文件拷贝到电脑的指定目录下. 注:本篇博文仅支持技术讨论,不用于数据的盗取之类的黑科技. 本程序基于Win32开发,主要是利用Win32 ...

  8. Robot Framework 遇到过的错误 1. Chrome打开无法数据网址,地址栏只显示data:,

    问题描述:用RF打开网页时未跳转到指定网址,而是显示data:, *** Settings ***Library SeleniumLibrary *** Test Cases ***Login_Tes ...

  9. mysql批量插入,批量更新

    进行批量操作的时候,一定要事先判断数组非空 <insert id="batchInsert"parameterType="java.util.List"& ...

  10. python: ImportError: cannot import name 'Style' from 'openpyxl.styles' 解决方法

    import os, openpyxl from openpyxl.styles import Font, Style os.chdir("C:\\") wb = openpyxl ...