中值滤波

对于3*3窗口,利用窗口内像素灰度值的中值代替中心点像素值,也就是先对窗口内的9个像素排序,然后取第五个像素代替中心点像素值。该方法在去除椒盐噪声、脉冲噪声方面效果很好,因为该方法可以直接过滤较高或较低的像素值。

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素。

函数原型:

void medianBlur(InputArray src, OutputArray dst, int kszie);

参数详解;

第一个参数:InputArray类型的src,输入图像,Mat类的对象。该函数对通道是独立处理的,且可以处理1、3或4得到的Mat图像,但是待处理的图像深度应该是CV_8U,CV_16U,CV_32F,但是对于较大孔径尺寸的图像,只能是CV_8U。

第二个参数:OutputArray类型的dst,目标图像,需要和输入图像有相同的尺寸和类型。

第三个参数:int类型ksize,孔径的线型尺寸,必须是大于1的奇数。

双边滤波

双边滤波(Bilateral filter)是一种非线性的滤波方法,双边滤波器的好处是可以做边缘保存(edge preserving),在图像的平坦区域,像素值变化很小,对应的像素范围域权重接近于1,此时空间域权重起主要作用,相当于进行高斯模糊;在图像的边缘区域,像素值变化很大,像素范围域权重变大,从而保持了边缘的信息。​

函数原型:

void bilateralFilter(InputArray src, OutputArray dst, int d,double sigmaColor,double sigmaSpace,int borderType=BORDER_DEFAULT);

参数详解;

第一个参数:InputArray类型的src,输入图像,Mat类的对象。该函数对通道是独立处理的,且可以处理1、3或4得到的Mat图像,但是待处理的图像深度应该是CV_8U,CV_16U,CV_32F,但是对于较大孔径尺寸的图像,只能是CV_8U。

第二个参数:OutputArray类型的dst,目标图像,需要和输入图像有相同的尺寸和类型。

第三个参数:int类型d,过滤像素邻域的直径。

第四个参数:double类型的sigmaColor,颜色空间滤波器的值。参数越大,表明像素邻域内有越宽的颜色混合到一起。

第五个参数:double类型的sigmaSpace,坐标空间滤波器的值。参数越大,表明越远的像素有相互影响。

程序

#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<vector>
#include<time.h>
#include<opencv2/core/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;
//--------------------------------------【main( )函数】-----------------------------------------
//          描述:控制台应用程序的入口函数,我们的程序从这里开始执行
//-------------------------------------------------------------------------------------------------Mat src = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\12.bmp");
Mat dst1 ,dst2;
int mediafilter = 3;//中值滤波参数值
int shuangfilter = 4;//双边滤波参数值//中值滤波回调函数
void on_media(int, void*)
{medianBlur(src, dst1, 2 * mediafilter+1);imshow("中值滤波", dst1);
}//双边滤波回调函数
void on_shuang(int, void*)
{bilateralFilter(src, dst2, shuangfilter, (double)shuangfilter*2+1, shuangfilter/2);imshow("双边滤波", dst2);
}
int main()
{double time0 = static_cast<double>(getTickCount());//记录起始时间namedWindow("原图", WINDOW_FREERATIO);namedWindow("中值滤波", WINDOW_FREERATIO);namedWindow("双边滤波", WINDOW_FREERATIO);imshow("原图", src);//中值滤波createTrackbar("内核值", "中值滤波", &mediafilter, 20, on_media);on_media(mediafilter, 0);//双边滤波createTrackbar("内核值", "双边滤波", &shuangfilter, 20, on_shuang);on_shuang(shuangfilter, 0);time0 = ((double)getTickCount() - time0) / getTickFrequency();cout << "此方法运行时间:" << time0 << "秒" << endl;//输出运行时间waitKey(0);return 0;
}

非线性滤波(opencv)相关推荐

  1. OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()

    OpenCV学习笔记(六):非线性滤波-中值.双边:medianBlur(),bilateralFilter() 1.中值滤波(Median filter) 是一种典型的非线性滤波技术,基本思想是用像 ...

  2. OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

    OpenCV与图像处理学习五--图像滤波与增强:线性.非线性滤波.直方图均衡化与Gamma变换 三.图像滤波与增强 3.1 线性滤波 3.1.1 方框滤波 3.1.2 均值滤波 3.1.3 高斯滤波 ...

  3. 【OpenCV 例程200篇】60. 非线性滤波—联合双边滤波

    [OpenCV 例程200篇]60. 非线性滤波-联合双边滤波(Joint bilateral filter) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白 ...

  4. 【OpenCV 例程200篇】59. 非线性滤波—双边滤波

    [OpenCV 例程200篇]59. 非线性滤波-双边滤波(Bilateral filter) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学 ...

  5. 【OpenCV 例程200篇】58. 非线性滤波—中值滤波

    [OpenCV 例程200篇]58. 非线性滤波-中值滤波 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像滤波是 ...

  6. OpenCV精进之路(二):图像处理——线性滤波和非线性滤波

    前言 滤波处理分为两大类:线性滤波和非线性滤波.OpenCV里有这些滤波的函数,使用起来非常方便,现在简单介绍其使用方法. 线性滤波 线性滤波有方框滤波.均值滤波.高斯滤波三种滤波. (一)方框滤波 ...

  7. python高斯噪声怎么去除_【OpenCV+Python】线性滤波amp;非线性滤波

    线性滤波 本次教程将介绍几种OpenCV常用的滤波器,将介绍它们详细的原理,图像滤波对于OpenCV图像处理来说是至关重要的一环,它在整个OpenCV中的分量是举足轻重的,我们必须完完全全的掌握它. ...

  8. 《OpenCV3编程入门》学习笔记6 图像处理(二)非线性滤波:中值滤波、双边滤波

    第6章 图像处理 6.2 非线性滤波:中值滤波.双边滤波 6.2.1 非线性滤波 很多情况下,使用领域像素的非线性滤波会得到更好的效果,如在噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大值时,高斯 ...

  9. 快速系统从零学习OpenCV 4路线图

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转眼间,小白学视觉就要成立三周年了,小白一直是很感谢小伙伴们的支持 ...

最新文章

  1. 传蔚来计划回国内科创板上市,关闭硅谷办公室
  2. C++访问属性和继承属性浅析
  3. Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦
  4. 同程旅行基于 RocketMQ 高可用架构实践
  5. 2008中的membership profile操作(转)
  6. Flink-Sink_将结果输出到Kafka_Redis_ES_Mysql中
  7. imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题
  8. MOSS2010 中“找不到位于xxxx的web应用程序”的解决办法
  9. visual studio 2019配置dlib读取jpeg图片
  10. js遍历(js遍历json对象)
  11. 1.42 财务测量指标——静态评价法(投资回报率+投资回收期)
  12. 怎样取消QQ的热键(快捷键)
  13. linux引导界面背景,如何个性化syslinux引导界面背景照片
  14. 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
  15. 编辑ListView(Edit,Update,Inse
  16. android PowerManager goToSleep 等用法
  17. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】
  18. 对我自己的一点分析总结
  19. JS EventListener
  20. 华为服务器pe安装系统教程视频教程,华为电脑重装windows7系统的方法

热门文章

  1. mysql sql w3cschool_SQL复习(w3school)笔记
  2. Python 的基本数据类型
  3. 通过jQuery调用ASP.NET的AJAX
  4. Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现
  5. 2022-2028年中国白手套行业市场全景调查及发展前景分析报告
  6. Android应用系列:完美运行GIF格式的ImageView(附源码)
  7. python学习笔记——Thread常用方法
  8. offsetTop,clientX,clientTop,clientWidth,offsetWidth 坐标,一次弄明白
  9. python tornado教程_Tornado 简单入门教程(零)——准备工作
  10. 计算机二级ms office excel,计算机二级Msoffice考试excel答案.docx