首页 > 编程语言 >OpenCV4中的图像滤波函数定义,原理,以及区别(Python)

OpenCV4中的图像滤波函数定义,原理,以及区别(Python)

时间:2024-03-19 14:15:34浏览次数:33  
标签:src None Python dst 滤波 borderType OpenCV4 图像

图像滤波

1.方框滤波

方框滤波的滤波器为矩形,滤波器中的所有元素值均相等。定义如下:

dst = boxFilter(src, ddepth, ksize, dst = None, anchor = None, normalize = None, borderType = None)

src:输入图像。
ddepth:处理后的目标图像的深度,若为-1,则深度与原始图像的深度相同。
ksize:滤波运算的核尺寸
dst:输出图像(返回值)。
anchor:锚点。
normalize:核是否需要被归一化处理
borderType:边界模式,由 BorderTypes 定义。

2.均值滤波

将区域内的所有的数全部加起来后,求取平均值取代中心点的中间值。对于边界,只需要提取包括中心点在内的周围点的像素平均值。定义如下:

dst = blur(src, ksize, dst = None, anchor = None, borderType = None)

srC:输入图像。
ksize:滤波运算的核尺寸
dst:输出图像(返回值)。
anchor:锚点。
borderType:边界模式,由BorderTypes 定义。

特点:在图像去噪的同时破坏了图像的细节部分,使图像变得模糊,尤其是在处理椒盐滤波时。

3.高斯滤波

用一个卷积来确定领域内的像素加权平均值去代替卷积中心像素点的值。卷积高度和宽度可以不同,但要为奇数。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算领域内各个像素值不同权重的和。定义如下:

dst =GaussianBlur(src,ksize,sigmaX,dst=None,sigmaY=None, borderType=None)

src:输入图像。
ksize:滤波运算的核尺寸。
sigmaX:高斯核在X方向上的 sigma 值。
dst:输出图像(返回值)。
sigmaY:高斯核在Y方向上的 sigma 值。
borderType:边界模式,由BorderTypes定义。

特点:可以较好地减弱噪声并保留小信号,但边缘信息损失比较严重。高斯滤波对高斯噪声消除效果较好。

4.双边滤波

常用于像素边缘保持的空间非线性滤波方法,主要利用了领域内像素点的空间邻近度和像素值相似度来构建高斯权重滤波器。定义如下:

dst = bilateralFilter(src,d,sigmaColor,sigmaSpace, dstNone, borderType=None)

src:输入图像。
d:滤波过程中每个像素邻域的直径范围sigmaColor:颜色空间滤波器的 sigma 值。sigmaSpace:坐标空间滤波器的 sigma 值。
dst:输出图像(返回值)。
borderType:边界模式,由BorderTypes 定义。

特点:较好的保留边缘信息

5.中值滤波

使用邻域内所有像素值的中间值来替代当前像素点的像素值。定义如下:

dst=medianBlur(src,ksize,dst=None)

src:输入图像。
ksize:滤波核大小。
dst:输出图像(返回值)。

特点:中值滤波对噪声的消除效果比线性滤波好,但是随着滤波核的增大,图像也会变模糊。

参考文章:图像处理:推导五种滤波算法(均值、中值、高斯、双边、引导)

标签:src,None,Python,dst,滤波,borderType,OpenCV4,图像
From: https://www.cnblogs.com/every-every-day/p/18082576

相关文章

  • python自动化——自动化框架常用封装代码复习
    日志模块:importloggingimportosdefcreat_log(name="mylog",level="DEBUG",filename="log.log",sh_level="DEBUG",fh_level="DEBUG"):log=logging.getLogger(name)log.setLevel(level)fh=lo......
  • 分月饼【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-分月饼中秋节,公司分月饼,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人分到最多月饼的个数是Max1,单人分到第二多月饼个数是Max2,Max1-Max2<=3,单人分到第n-1多月饼个数是Max(n-1),单人分到第n多月饼个数是Max(n),Max(n-1)–Max(n)<=3,问有多少......
  • Python爬虫是什么?核心概念和原理
    一、爬虫的概念和作用1.1概念:        网络爬虫也叫网络蜘蛛,特指一类自动批量下载网络资源的程序,这是一个比较口语化的定义。更加专业和全面对的定义是:网络爬虫是伪装成客户端与服务端进行数据交互的程序.1.2作用1.2.1数据采集        大数据时代来临......
  • Python面向对象——架构设计【2】
     练习1:打电话请使用面向对象思想描述下列情景:  小明使用手机打电话,还有可能使用座机....classPeople:def__init__(self,name):self.name=namedefcall_up(self,tool):print(self.name,end="")tool.call()cla......
  • Python——Regular Expression(正则表达式)RE
    正则表达式是一种强大的文本处理工具,它使用一种特殊的语法来匹配、查找以及替换字符串中的字符组合。在Python中,正则表达式,"re模块"。英文叫做"RegularExpression"。re模块是Python中用于处理正则表达式的标准库。它提供了多个函数来执行正则表达式的匹配、查找、替换和分割操......
  • 自动化测试框架、Python面向对象以及POM设计模型简介
    1 自动化测试框架概述   所谓的框架其实就是一个解决问题的思维,前言中描述的诸多问题如果得到解决,自然而然这种得到良好解决的东西它就可以称之为一个框架,只是这个框架用来解决如何组织开展自动化测试。一个典型的自动化测试框架一般包括测试用例集模块、测试执行控制模块......
  • python 小小入门2
    紧跟上章使用FinalShell1)mkdiraaa创建文件夹mkdir-p/aaa/bbb/ccc创建文件夹以及后续2)touch 例如touch1.txt也可touch1.txt2.txt3.txt以及touchfsd.sdad也可以创建如果已经有了touch1.txt再创建一个touch1.txt那么他不会覆盖以及删除原来的文件只......
  • python中`__call__`让类像函数一样被调用
    在训练一个网络过程中,有下面代码'''4.训练网络'''print('开始训练')forepochinrange(3):runing_loss=0.0fori,datainenumerate(trainloader,0):inputs,label=data#1.数据加载ifdevice=='gpu':......
  • 简化python ctypes库调用API的封装
    使用ctypes库调用C的函数,需要进行封装.如下所示:#对结构的封装classSTARTUPINFOEX(Structure):"""STARTUPINFOEXstructure"""_fields_=[("StartupInfo",STARTUPINFO),("lpAttributeList",POINTER(PVOID))......
  • Python轻松实现地图可视化(附详细源码) 转载
    大家好,我是J哥,专注原创,致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货,希望人人都能学到新知识。Python的地图可视化库很多,Matplotlib库虽然作图很强大,但只能做静态地图。而我今天要讲的是交互式地图库,分别为pyecharts、folium,掌握这两个库,基本可以解决你的地图可视化需......