from cv2 import cv2 as cv
import numpy as np
# 双边模糊
def bi_demo(image):
# 高斯双边模糊:
# d:即 distance,常规为 0 ,像素的邻域直径,可有sigmaColor和sigmaSpace计算可得;
# sigmaColor:尽量取大,目的将小的差异模糊掉,噪声去掉
# sigmaSpace:尽量取小,那么“核”就小一点,主要的差异就保留下来
dst = cv.bilateralFilter(image,0,100,15)
cv.imshow('bi_demo',dst)
# 均值迁移
def shift_demo(image):
"""
均值迁移模糊:
sp:(The spatial window radius) 定义的漂移物理空间半径大小
sr:(The color window radius) 定义的漂移色彩空间半径大小
"""
dst = cv.pyrMeanShiftFiltering(image,10,50)
cv.imshow('shift_demo',dst)
if __name__ == "__main__":
filepath = "C:\\pictures\\6.jpg"
img = cv.imread(filepath) # blue green red
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",img)
bi_demo(img)
shift_demo(img)
cv.waitKey(0)
cv.destroyAllWindows()
可以看一下对比图

本文介绍使用OpenCV进行图像处理的两种高级模糊技术:高斯双边模糊和均值迁移模糊。通过调整参数,如sigmaColor、sigmaSpace、sp和sr,可以有效去除噪声并保留重要细节,实现高质量的图像模糊效果。
411

被折叠的 条评论
为什么被折叠?



