OpenCV每日函数 图像过滤模块 (14) medianBlur中值滤波函数
一、概述
使用中值滤波器模糊图像。
该函数使用具有 ksize×ksize 孔径的中值滤波器对图像进行平滑处理。 多通道图像的每个通道都是独立处理的。
中值滤波器在内部使用 BORDER_REPLICATE 来处理边界像素,请参阅 BorderTypes。
下图描述了一个ksize=3×3的滑动窗口(或称滤波器模板、kernel),如黄色部分所示。用这个ksize=3×3的窗口作用于原始图像上的每一个像素,如下图的绿色部分所示,被这个窗口覆盖的9个像素点都参与计算,这样在该像素点上就会得到一个新的像素值,当窗口沿着图像逐个像素进行计算,就会得到一幅新的图像。
上图中滤波器模板的不同就构成了滤波算法的差异,比如均值平滑算法中滑动窗口中各个像素点的系数均为1/(窗口高*窗口宽),高斯平滑中系数和中心点的距离满足高斯分布。
中值平滑和均值平滑一样也用到了滑动窗口,但是它并不是计算滑动窗口中的某种加权和,而是使用原图像滑动窗口中所有像素值排序后的中值作为新图像的像素值。
从上图也可以看到,当滑动窗口作用于图像边沿的时候,滑动窗口的某些像素并没有和图像重合,这时就需要对边沿做特殊处理,常用的方法有填0、填1、复制边沿等方式。
二、medianBlur函数
1、函数原型
cv::medianBlur (InputArray src, OutputArray dst, int ksize)
2、参数详解
src | 输入 1、3 或 4 通道图像; ksize 为 3 或 5 时,图像深度应为 CV_8U、CV_16U 或 CV_32F,对于较大的光圈尺寸,只能为 CV_8U。 |
dst | 与 src 大小和类型相同的目标数组。 |
ksize | 孔径线性尺寸; 它必须是奇数且大于 1,例如:3、5、7 ... |
三、OpenCV源码
1、源码路径
opencv\modules\imgproc\src\median_blur.dispatch.cpp
2、源码代码
void medianBlur( InputArray _src0, OutputArray _dst, int ksize )
{CV_INSTRUMENT_REGION();CV_Assert(!_src0.empty());CV_Assert( (ksize % 2 == 1) && (_src0.dims() <= 2 ));if( ksize <= 1 || _src0.empty() ){_src0.copyTo(_dst);return;}CV_OCL_RUN(_dst.isUMat(),ocl_medianFilter(_src0,_dst, ksize))Mat src0 = _src0.getMat();_dst.create( src0.size(), src0.type() );Mat dst = _dst.getMat();CALL_HAL(medianBlur, cv_hal_medianBlur, src0.data, src0.step, dst.data, dst.step, src0.cols, src0.rows, src0.depth(),src0.channels(), ksize);CV_OVX_RUN(true,openvx_medianFilter(_src0, _dst, ksize))//CV_IPP_RUN_FAST(ipp_medianFilter(src0, dst, ksize));CV_CPU_DISPATCH(medianBlur, (src0, dst, ksize),CV_CPU_DISPATCH_MODES_ALL);
}
四、效果图像示例
OpenCV每日函数 图像过滤模块 (14) medianBlur中值滤波函数相关推荐
- 【OpenCV学习】第6课:图像模糊(中值滤波,高斯双边滤波)
仅自学做笔记用,后续有错误会更改 理论 中值滤波:对核内数值先进行排序,再取中间那个值 注1:中值滤波属于统计学的排序滤波器 注2:中值滤波对椒盐噪声有很好的抑制作用 高斯双边滤波(美颜磨皮效果一般都 ...
- OpenCV图像处理专栏九 | 基于直方图的快速中值滤波算法
转载自:https://zhuanlan.zhihu.com/p/98092747 侵删 前言 这是OpenCV图像处理专栏的第9篇文章,主要介绍一个基于直方图的快速中值滤波算法,希望对大家有帮助. ...
- OpenCV每日函数 图像过滤模块 (1) bilateralFilter函数(双边滤波)
一.概述 过滤可能是图像处理和计算机视觉中最基本的操作.在术语"过滤"的最广义上,过滤图像在给定位置的值是输入图像在同一位置的小邻域中的值的函数. 例如,高斯低通滤波计算邻域中像素 ...
- OpenCV每日函数 图像过滤模块 (6) erode腐蚀函数
一.概述 使用特定的结构元素腐蚀图像.该函数使用指定的结构元素腐蚀源图像,该结构元素确定取最小值的像素邻域的形状: 侵蚀可以应用数次(迭代). 在多通道图像的情况下,每个通道都是独立处理的. 膨胀: ...
- OpenCV每日函数 图像过滤模块 (8) GaussianBlur高斯模糊函数
一.概述 使用高斯滤镜模糊图像.该函数将源图像与指定的高斯核进行卷积. 在图像处理中,高斯模糊(也称为高斯平滑)是通过高斯函数(以数学家和科学家卡尔弗里德里希高斯命名)对图像进行模糊处理的结果. 它是 ...
- OpenCV每日函数 图像过滤模块 (5) dilate膨胀函数
一.概述 通过使用特定的结构元素来扩大图像.该函数使用指定的结构元素扩展源图像,该结构元素确定取最大值的像素邻域的形状: 膨胀可以应用数次(迭代). 在多通道图像的情况下,每个通道都是独立处理的. 膨 ...
- OpenCV实现图片素描风(调用摄像头+中值滤波+拉普拉斯边缘检测)
惯例效果震楼 效果没有想象的好,但也勉强够看了,代码如下: #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgp ...
- C++ 实现matlab中值滤波函数medfilt2
void MedianFilt(std::vector<int> src, std::vector<int> dst, MatrixParam& param, int ...
- OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()
OpenCV学习笔记(六):非线性滤波-中值.双边:medianBlur(),bilateralFilter() 1.中值滤波(Median filter) 是一种典型的非线性滤波技术,基本思想是用像 ...
- 利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能)
利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能) 在halcon图像库中有一个常用的中值滤波算子median_rect: median_rec ...
最新文章
- 关于软件测试中那点小事中的大道理
- 神经网络基础之可视化和交互式指南
- 【POJ 1200】Crazy Search(将字符映射为数字,将NC进制hash成10进制)
- 使用NSKeyedArchiver归档
- linux配置utf-8环境
- 判断一个字符串的字符是不是唯一
- Srs之state-threads研究
- 计算机网络与综合布线系统设计,计算机网络综合布线系统设计
- 极狐+华为,小鹏+大疆,极氪+mobileye,自动驾驶成为“风向标”
- ESP32-S3 USB UART 下载总结
- 华为U2000统一网管
- between and 用法
- 微信请勿打扰昵称,个性好看,来看看!
- 加密字符 【问题描述】 在情报传递过程中,为了防止情报被截获,往往需要用一定的方式对情报进行加密。简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易识别
- Windows上利用Python自动切换代理IP的终极方案!
- 激荡20年,芯片产能从零起步到反超美国,中国制造的又一大成就
- HTTPS网站提示“此网站无法提供安全连接”
- 数据分析画图:50道练习玩转matplotlib
- 弹窗广告关不掉?工信部:用这个方法举报!
- dvi dp hdmi_HDMI vs DisplayPort vs DVI:您要在新计算机上使用哪个端口?
热门文章
- Teamviewer Install
- 判断质数和合数python代码_【奇技淫巧】利用正则进行需要整除操作的判断,如:奇偶性,质数合数...
- 69、消防电源及其配电的设置要求
- 第一章	HTML基础
- C51最小系统板红外遥控控制led灯的亮灭
- 十分钟学会如何用Python处理CSV文件
- Scrapy入门案例,抓取美剧天堂的前100最新
- [原创摄影]西藏行(一)从不同角度看布达拉
- c语言 pow算圆的面积,简单微积分--积分求圆的面积
- v-model中修饰符lazy,number, trim的作用