opencv 图像滤波(均值,方框,高斯,中值)

 更新时间:2020年07月08日 10:53:54   作者:总裁余  
这篇文章主要介绍了opencv 图像滤波(均值,方框,高斯,中值),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

为什么要使用滤波

消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没。因此一个能降低高频成分幅度的滤波器就能够减弱噪声的影响。
如下图,左图带有椒盐噪声,右图为使用中值滤波处理后的图片。


图像滤波的目的有两个:一是抽出对象的特征作为图像识别的特征模式;另一个是为适应图像处理的要求,消除图像数字化时所混入的噪声。

python +opencv讲解

均值滤波

含义
如图:如果我们想对红色点进行处理,则它新值等于周围N乘N个像素点的平均(包括自身)


用表达式表达:


扩展到对整个图像进行均值滤波


实现方法:
处理结果=cv2.blur(原始图像,核大小)

核大小:以(宽度,高度)的元祖
效果:使图像变模糊啦。能处理被椒盐攻击过的照片。

import cv2
a=cv2.imread('lenacolor.png')#
b=cv2.blur(a,(8,8))
cv2.imshow('original',a)
cv2.imshow('result',b)
cv2.waitKey(0)
cv2.destroyAllWindows()

方框滤波

实现方法:函数boxFilter
处理结果=cv2.boxFilter(原始图像,目标图像深度,核大小,normalize属性)

目标图像深度: int类型的目标图像深度,-1表示与原始图像一致
核大小:(宽度,高度)元祖
normalize:是否对目标图像进行归一化处理
normalize为true 时与均值滤波一样,为false时表示任意一个点的像素为周围像素点的和,容易发生溢出超过255


normalize=1,1为true

import cv2
a=cv2.imread('lenacolor.png')#
b=cv2.boxFilter(a,-1,(5,5),normalize=1)
cv2.imshow('original',a)
cv2.imshow('result',b)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:


normalize=0,0为false
结果中只有几个点不是白色


减少核大小为(2,2)normalize=0

高斯滤波

含义:
中心点权重高,越远越低


实现方法:GaussianBlur

处理结果=cv2.GaussianBlur(原始图像src,核函数大小ksize,sigmaX)

核函数大小ksize:(N,N)必须是奇数
sigmaX:控制x方向方差,控制权重,一般取0,它自己去计算方差。y轴方差和x一致

import cv2
a=cv2.imread('lenacolor.png')#
b=cv2.GaussianBlur(a,(3,3),0)
cv2.imshow('original',a)
cv2.imshow('result',b)
cv2.waitKey(0)
cv2.destroyAllWindows()

中值滤波

使用像素点邻域附近的像素的中值代替该点的像素值。通俗点来说,在这个像素的左边找五个像素点,右边找五个像素点,将这些像素进行排序,排序过后产生一个中值,用中间大小的值,来代替该像素的值。

中值滤波可以有效的去除斑点和椒盐噪声。但是效率低,其运算时间 为均值滤波的五倍以上。


实现方法:medianBlur
目标图像=cv2.medianBlur(原始图像,intksize)
intksize:核函数,必须为奇数.

import cv2
a=cv2.imread('lenacolor.png')#
b=cv2.medianBlur(a,5)
cv2.imshow('original',a)
cv2.imshow('result',b)
cv2.waitKey(0)
cv2.destroyAllWindows()


到此这篇关于opencv 图像滤波(均值,方框,高斯,中值)的文章就介绍到这了,更多相关opencv 图像滤波内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 日志模块 日志等级设置失效的解决方案

    python 日志模块 日志等级设置失效的解决方案

    这篇文章主要介绍了python 日志模块 日志等级设置失效的问题及解决方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Python秒算24点实现及原理详解

    Python秒算24点实现及原理详解

    这篇文章主要介绍了Python秒算24点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python OpenCV中常用图片处理函数小结

    Python OpenCV中常用图片处理函数小结

    在计算机视觉和图像处理领域,OpenCV(Open Source Computer Vision Library)是一个非常强大和流行的开源库,本文将介绍一些常用的OpenCV函数,希望对大家有所帮助
    2024-03-03
  • Python 25行代码实现的RSA算法详解

    Python 25行代码实现的RSA算法详解

    这篇文章主要介绍了Python 25行代码实现的RSA算法,结合实例形式详细分析了rsa加密算法的概念、原理、相关实现技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • python循环输出三角形图案的例子

    python循环输出三角形图案的例子

    今天小编就为大家分享一篇python循环输出三角形图案的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • opencv python中cv.approxPolyDP函数详细解释

    opencv python中cv.approxPolyDP函数详细解释

    这篇文章主要给大家介绍了关于opencv python中cv.approxPolyDP函数详细解释的相关资料,OpenCV中的approxPolyDP()函数用于对形状进行逼近,以减少多边形的顶点数,可以用于对图像轮廓点进行多边形拟合,需要的朋友可以参考下
    2024-01-01
  • 在Pytorch中计算卷积方法的区别详解(conv2d的区别)

    在Pytorch中计算卷积方法的区别详解(conv2d的区别)

    今天小编就为大家分享一篇在Pytorch中计算卷积方法的区别详解(conv2d的区别),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 解决yum对python依赖版本问题

    解决yum对python依赖版本问题

    这篇文章主要介绍了解决yum对python依赖版本问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 10分钟用python搭建一个超好用的CMDB系统

    10分钟用python搭建一个超好用的CMDB系统

    这篇文章主要介绍了10分钟用python搭建一个超好用的CMDB系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 对python指数、幂数拟合curve_fit详解

    对python指数、幂数拟合curve_fit详解

    今天小编就为大家分享一篇对python指数、幂数拟合curve_fit详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论