opencv+python学习记录(十四)双边滤波

双边滤波:它能够保持边界清晰的情况下有效的去除噪声,但是这种操作比较慢。它拥有着美颜的效果

opencv提供的函数:cv2.bilateralFilter()

import cv2

def bi_demo(image):#高斯双边滤波

    dst = cv2.bilateralFilter(src=image, d=0, sigmaColor=100, sigmaSpace=15)

    cv2.namedWindow('bi_demo',0)

    cv2.resizeWindow('bi_demo',300,400)

    cv2.imshow("bi_demo", dst)

'''

    其中各参数所表达的意义:

    src:原图像;

    d:像素的邻域直径,可有sigmaColor和sigmaSpace计算可得;

    sigmaColor:颜色空间的标准方差,一般尽可能大;

    sigmaSpace:坐标空间的标准方差(像素单位),一般尽可能小。'''

def mean_shift_demo(image):#均值偏移滤波

    dst = cv2.pyrMeanShiftFiltering(src=image, sp=15, sr=20)

    cv2.namedWindow('mean_shift image', 0)

    cv2.resizeWindow('mean_shift image', 300, 400)

    cv2.imshow("mean_shift image", dst)

#使用均值边缘保留滤波时,可能会导致图像过度模糊

'''其中各参数所表达的意义:

    src:原图像;

    sp:空间窗的半径(The spatial window radius);

    sr:色彩窗的半径(The color window radius)'''

src = cv2.imread('E:\python\image\lena.jpg')

bi_demo(src)

mean_shift_demo(src)

cv2.namedWindow('src', 0)

cv2.resizeWindow('src', 300, 400)

cv2.imshow('src',src)

cv2.waitKey(0)

来源自https://blog.csdn.net/songjinxaing/article/details/80487006

你可能感兴趣的:(opencv+python学习记录(十四)双边滤波)