前提条件
使用工具python3.x
使用库 :numpy、opencv,
api简介
1.cv.bilateralFilter
api函数:双边滤波,可以很好的保存图像边缘细节并且滤除掉低频分量的噪音,但是双边滤波器的效率不是很高,花费时间比其他滤波器较长(函数所需参数见代码)
2.cv.pyrMeanShiftFiltering
api函数:均值偏移滤波 ,均值漂移算法,这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域
代码示例
import cv2 as cv
import numpy as np
def bi_demo(image):#双边模糊
dst = cv.bilateralFilter(image, 0, 100, 15)
cv.imshow('bi_demo',dst)
def shift_demo(image):#均值迁移的得到的效果,基于金字塔的meanshift模糊
dst = cv.pyrMeanShiftFiltering(image, 10, 15)
cv.imshow('shift_demo', dst)
# src=cv.imread("D:/openCV_image/image/1.spng")
src=cv.imread("D:/openCV_image/image/3.png")
# src=cv.imread("D:/openCV_image/image/2_2.png")
# print(src)
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
# bi_demo(src)
shift_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
效果:
bi_demo(src)
cv.bilateralFilter()