Fork me on GitHub

均值迁移滤波python

"""
    bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst
    - src: 输入图像。
    - d:   在过滤期间使用的每个像素邻域的直径。如果输入d非0,则sigmaSpace由d计算得出,如果sigmaColor没输入,则sigmaColor由sigmaSpace计算得出。
    - sigmaColor: 色彩空间的标准方差,一般尽可能大。
    较大的参数值意味着像素邻域内较远的颜色会混合在一起,
    从而产生更大面积的半相等颜色。
    - sigmaSpace: 坐标空间的标准方差(像素单位),一般尽可能小。
    参数值越大意味着只要它们的颜色足够接近,越远的像素都会相互影响。
    当d > 0时,它指定邻域大小而不考虑sigmaSpace。
      否则,d与sigmaSpace成正比。
"""

# 边缘保留滤波(EPF)  高斯双边、均值迁移
import cv2


def bi_demo(image):   # 双边滤波
    dst = cv2.bilateralFilter(image, 0, 100, 15)
    cv2.namedWindow("bi_demo", cv2.WINDOW_NORMAL)
    cv2.imshow("bi_demo", dst)


def shift_demo(image):   # 均值迁移
    dst = cv2.pyrMeanShiftFiltering(image, 10, 50)
    # cv2.namedWindow("shift_demo", cv2.WINDOW_NORMAL)
    # cv2.imshow("shift_demo", dst)
    cv2.imwrite('./output2/1_1.jpg', dst)

src = cv2.imread('./output2/1.jpg')
# cv2.namedWindow('input_image', cv2.WINDOW_NORMAL)
# cv2.imshow('input_image', src)

# bi_demo(src)
shift_demo(src)

cv2.waitKey(0)
cv2.destroyAllWindows()
posted @ 2020-05-08 15:02  WalterJ726  阅读(350)  评论(0编辑  收藏  举报