import cv2 as cv
import numpy as np
#双边滤波,俗称滤镜
def bi_demo(image):
dst=cv.bilateralFilter(src=image,d=0,sigmaColor=100,sigmaSpace=15)
cv.imshow("bi_demo",dst)
#d bilateralFilter
#d参数表示在过滤期间使用的每个像素邻域的直径
#sigmaColor参数表示色彩空间的标准方差,一般尽可能大。较大的参数值意味着像素邻域内较远的颜色会混合在一起,从而产生更大面积的半相等颜色。
#sigmaSpace参数表示坐标空间的标准方差(像素单位),一般尽可能小。参数值越大意味着只要它们的颜色足够接近,越远的像素都会相互影响。
#均值迁移
def shfit_demo(image):
dst=cv.pyrMeanShiftFiltering(src=image,sp=10,sr=50)
cv.imshow("shift_demo",dst)
#src参数表示输入图像,8位,三通道图像。
#sp参数表示漂移物理空间半径大小。
#sr参数表示漂移色彩空间半径大小。
src=cv.imread("D:/2018-07-31 101509.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("source image",src)
bi_demo(src)#双边滤波
shfit_demo(src)#均值迁移
cv.waitKey(0)
cv.destroyAllWindows()
原图效果
双边滤波效果
均值迁移效果