小白学python(opencv边缘保留滤波EPF)

边缘保留滤波

高斯模糊只考虑了权重,只考虑了像素空间的分布,
没有考虑像素值和另一个像素值之间差异的问题,如果像素间差异较大
的情况下(比如图像的边缘),高斯模糊会进行处理,但是我们不需要
处理边缘,要进行的操作就叫做边缘保留滤波(EPF)

两种操作

高斯双边

差异越大,越会完整保留
若是高斯模糊,则整体都会模糊掉,实现滤镜效果。
用高斯模糊像是开滤镜,双边模糊像是加美颜。
在这里插入图片描述

def bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None,borderType=None): # real signature unknown;restored from __doc__
#值域和空域的两个方差sigma可以简单的设置为相等,
小于10,无太大效果,大于150效果太强,像卡通片似的。
滤波器尺寸d:大于5将较慢(5 forreal-time),d=9,for
 off-lineapplications,d 是像素邻域“直径”。计算的半径,半径之内
的像数都会被纳入计算,如果提供-1,会从后面的参数sigmaSpace中
自动计算。
Sigma_color颜色空间过滤器的sigma值,这个参数的值越大,
表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半相等
颜色区域。 
Sigma_space坐标空间中滤波器的sigma值,如果该值较大,则意味着
颜色相近的较远的像素将相互影响,从而使更大的区域中足够相似的
颜色获取相同的颜色。当d>0时,d指定了邻域大小且与sigmaSpace五官,
否则d正比于sigmaSpace. 

函数即为:

#双边滤波的内在想法是:在图像的值域(range)上做传统滤波器
#在空域(domain)上做的工作。空域滤波对空间上邻近的点进行加
#权平均,加权系数随着距离的增加而减少;值域滤波则是对像素值
#相近的点进行加权平均,加权系数随着值差的增大而减少。

def bi_demo(image):#双边模糊
    dst = cv.bilateralFilter(image,0,100,15)
    cv.imshow("bi_demo",src)

在这里插入图片描述
(我的霉霉加美颜还变丑了哼)
在这里插入图片描述
(用这个图效果就很不错,但想想要是用高斯模糊会出现什么结果,全部变糊。。)

均值迁移

def pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None): # real signature unknown; restored from __doc__
第一个参数src,输入图像,8位,三通道的彩色图像,并不要求必须是RGB格式,HSV、YUV等Opencv中的彩色图像格式均可;

第二个参数sp,定义的漂移物理空间半径大小;
  #越大,细节丢失越多

第三个参数sr,定义的漂移色彩空间半径大小;

第四个参数dst,输出图像,跟输入src有同样的大小和数据格式;

第五个参数maxLevel,定义金字塔的最大层数;

第六个参数termcrit,定义的漂移迭代终止条件,
可以设置为迭代次数满足终止,迭代目标与中心点偏差满足终止,
或者两者的结合;

函数即为:

def shift_demo(image):# 均值迁移
    dst = cv.pyrMeanShiftFiltering(image,10,50)
    cv.imshow("shift_demo",dst)

在这里插入图片描述
(有点像油画不是吗)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mcl19909949541

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值