opencv之双边滤波 实现磨皮美化效果

双边滤波其综合了高斯滤波器和α-截尾均值滤波器的特点,同时考虑了空间域与值域的差别,而Gaussian Filter和α均值滤波分别只考虑了空间域和值域差别。高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;α-截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%的最小值和最大值后再计算均值。

cv.bilateralFilter(输入图像, d, sigmaColor, sigmaSpace)

src: 输入图像 
d: 表示在过滤过程中每个像素邻域的直径范围。如果这个值是非正数,则函数会从sigmaSpace计算该值。 
sigmaColor: 颜色空间过滤器的sigma值,这个参数的值越大,表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半相等颜色区域。
sigmaSpace: 坐标空间中滤波器的sigma值,如果该值较大,则意味着越远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色.
import cv2 as cv

src = cv.imread("img/chaowei.jpg")

sigmaColor = 0
sigmaSpace = 0


def onChange(index, val):
    global sigmaSpace, sigmaColor
    if index == 0:
        sigmaColor = val
    elif index == 1:
        sigmaSpace = val
    # 双边滤波器
    dst = cv.bilateralFilter(src, 10, sigmaColor, sigmaSpace)
    cv.imshow("dst", dst)


onChange(0, 0)

cv.createTrackbar("sigmaColor", "dst", 0, 255, lambda x: onChange(0, x))
cv.createTrackbar("sigmaSpace", "dst", 0, 255, lambda x: onChange(1, x))

cv.imshow("src", src)

cv.waitKey()

效果:

个人网站:www.wpvip.top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值