非线性滤波(opencv)
中值滤波
对于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)相关推荐
- OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()
OpenCV学习笔记(六):非线性滤波-中值.双边:medianBlur(),bilateralFilter() 1.中值滤波(Median filter) 是一种典型的非线性滤波技术,基本思想是用像 ...
- OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换
OpenCV与图像处理学习五--图像滤波与增强:线性.非线性滤波.直方图均衡化与Gamma变换 三.图像滤波与增强 3.1 线性滤波 3.1.1 方框滤波 3.1.2 均值滤波 3.1.3 高斯滤波 ...
- 【OpenCV 例程200篇】60. 非线性滤波—联合双边滤波
[OpenCV 例程200篇]60. 非线性滤波-联合双边滤波(Joint bilateral filter) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白 ...
- 【OpenCV 例程200篇】59. 非线性滤波—双边滤波
[OpenCV 例程200篇]59. 非线性滤波-双边滤波(Bilateral filter) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学 ...
- 【OpenCV 例程200篇】58. 非线性滤波—中值滤波
[OpenCV 例程200篇]58. 非线性滤波-中值滤波 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像滤波是 ...
- OpenCV精进之路(二):图像处理——线性滤波和非线性滤波
前言 滤波处理分为两大类:线性滤波和非线性滤波.OpenCV里有这些滤波的函数,使用起来非常方便,现在简单介绍其使用方法. 线性滤波 线性滤波有方框滤波.均值滤波.高斯滤波三种滤波. (一)方框滤波 ...
- python高斯噪声怎么去除_【OpenCV+Python】线性滤波amp;非线性滤波
线性滤波 本次教程将介绍几种OpenCV常用的滤波器,将介绍它们详细的原理,图像滤波对于OpenCV图像处理来说是至关重要的一环,它在整个OpenCV中的分量是举足轻重的,我们必须完完全全的掌握它. ...
- 《OpenCV3编程入门》学习笔记6 图像处理(二)非线性滤波:中值滤波、双边滤波
第6章 图像处理 6.2 非线性滤波:中值滤波.双边滤波 6.2.1 非线性滤波 很多情况下,使用领域像素的非线性滤波会得到更好的效果,如在噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大值时,高斯 ...
- 快速系统从零学习OpenCV 4路线图
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转眼间,小白学视觉就要成立三周年了,小白一直是很感谢小伙伴们的支持 ...
最新文章
- 传蔚来计划回国内科创板上市,关闭硅谷办公室
- C++访问属性和继承属性浅析
- Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦
- 同程旅行基于 RocketMQ 高可用架构实践
- 2008中的membership profile操作(转)
- Flink-Sink_将结果输出到Kafka_Redis_ES_Mysql中
- imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题
- MOSS2010 中“找不到位于xxxx的web应用程序”的解决办法
- visual studio 2019配置dlib读取jpeg图片
- js遍历(js遍历json对象)
- 1.42 财务测量指标——静态评价法(投资回报率+投资回收期)
- 怎样取消QQ的热键(快捷键)
- linux引导界面背景,如何个性化syslinux引导界面背景照片
- 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
- 编辑ListView(Edit,Update,Inse
- android PowerManager goToSleep 等用法
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】
- 对我自己的一点分析总结
- JS EventListener
- 华为服务器pe安装系统教程视频教程,华为电脑重装windows7系统的方法
热门文章
- mysql sql w3cschool_SQL复习(w3school)笔记
- Python 的基本数据类型
- 通过jQuery调用ASP.NET的AJAX
- Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现
- 2022-2028年中国白手套行业市场全景调查及发展前景分析报告
- Android应用系列:完美运行GIF格式的ImageView(附源码)
- python学习笔记——Thread常用方法
- offsetTop,clientX,clientTop,clientWidth,offsetWidth 坐标,一次弄明白
- python tornado教程_Tornado 简单入门教程(零)——准备工作
- 计算机二级ms office excel,计算机二级Msoffice考试excel答案.docx