专栏首页程序员OpenCV中值滤波

OpenCV中值滤波

在数字图像处理常见的变换核及其用途中,已经说明了线性滤波。线性滤波是算术运算,有固定的模板,即:变换核。

中值滤波是非线性滤波,没有固定的变换核。它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。

百度百科中是这样描述中值滤波的原理:

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

在OpenCV中,我们都是去取一个奇数的正方形模板,例如:3*3,5*5,7*7等。

中值滤波对脉冲噪声(椒盐噪声)有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。(DSP芯片实现)

椒盐噪声:椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

中值滤波的原理和应用我们也搞明白了,下面来看一个实际的例子。例子中的图片仍旧是来自百度百科的。

#include<opencv2/opencv.hpp>

using namespace cv;

int main()
{
	Mat src = imread("C:/Users/zhou_/Desktop/3.jpg");
	imshow("src", src);

	Mat dst;
	//中值滤波,二维模版大小取13*13
	medianBlur(src, dst, 13);

	imshow("result", dst);
	waitKey(0);
	return 0;
}

可以看到中值滤波的效果还是非常显著的,它有效的去除了图中的椒盐噪声。

需要说明的一点是邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘和轮廓信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小。如果在这个程序中选择的邻域范围是3*3,那么几乎不会有什么效果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OpenCV线性滤波(均值滤波,方框滤波,高斯滤波)

    OpenCV中提供了三种常用的线性滤波函数,它们分别是方框滤波,均值滤波和高斯滤波。

    zy010101
  • C++之运算符重载(四)

    https://blog.csdn.net/zy010101/article/details/105247142

    zy010101
  • 数字图像处理中常见的变换核及其用途

    图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性...

    zy010101
  • C#集合类型大揭秘

    集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C#代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,...

    撸码那些事
  • python list内部功能记录

    py3study
  • 区块链与工业4.0颠覆旅游行业,需面临的挑战

    工业4.0是由德国政府《德国2020高技术战略》所提出的十大未来项目之一。而区块链则是工业4.0的重要组成部分。两者应用于旅游行业,诞生了“区块链旅...

    陌上花开2018
  • 谷歌一下区块链媒体,有可行性吗?此次谷歌搜索重返中国,是否靠谱?

    谷歌一下区块链媒体,有可行性吗?没有。据链讯头条报道,最近,谷歌搜索返华的传闻再起,更有人民日报在海外社交媒体上对此事发文,表示:“欢迎谷歌返回中国大陆,但必须...

    望名天
  • pycharm: 配置远程repo

    JNingWei
  • 将微信聊天页和文章页拆分为两个任务卡片【微信高级教程6】

      在任意聊天窗口输入 //multiwebview 并发送,聊天和文章页面就可以被拆分为两个任务,并能同时出现在多任务切换页面中。如果在看文章过程中来了微信消...

    ytkah
  • mysql 数据库优化之执行计划(explain)简析

    数据库优化是一个比较宽泛的概念,涵盖范围较广。大的层面涉及分布式主从、分库、分表等;小的层面包括连接池使用、复杂查询与简单查询的选择及是否在应用中做数据整合等;...

    WindWant

扫码关注云+社区

领取腾讯云代金券