【opencv学习笔记 11 边缘保留滤波】bilateralFilter()和pyrMeanShiftFiltering()

本文深入探讨了边缘保留滤波技术,包括高斯双边模糊和均值迁移两种方法。高斯双边模糊通过控制色彩空间和坐标空间的过滤sigma,实现对图像中颜色相近区域的融合,同时保留边缘细节。均值迁移则通过调整空间和颜色窗口半径,对图像进行平滑处理,有效突出物体边界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

边缘保留滤波

"""
边缘保留滤波
"""
import cv2 as cv


def bi_demo(image):
    """
    高斯双边模糊
    :param image:
    :return:
    """
    # 函数参数 bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
    dst = cv.bilateralFilter(image, 0, 100, 50)
    cv.imshow("bi_demo", dst)


def shift_demo(image):
    """
    均值迁移
    :param image:
    :return:
    """
    dst = cv.pyrMeanShiftFiltering(image, 10, 50)
    cv.imshow("shift_demo", dst)


src = cv.imread("img.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
bi_demo(src)
shift_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

参数说明

高斯双边模糊

bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
@param src源8位或浮点,1通道或3通道图像。
@param dst大小和类型与src相同的目标映像。
@param d滤波期间使用的每个像素邻域的直径。 如果它不是正值,则从sigmaSpace计算得出。
@param sigmaColor在色彩空间中过滤sigma。 参数的较大值表示像素邻域内的其他颜色(请参见sigmaSpace)将混合在一起,从而
在较大范围的半均等颜色中。
@param sigmaSpace在坐标空间中过滤sigma。 该参数的值越大,意味着越远的像素就会相互影响,只要它们的颜色足够接近即可(请参见sigmaColor)。 当d \> 0时,它指定邻域大小,而不考虑sigmaSpace。 否则,d与sigmaSpace成比例。
@param borderType边界模式,用于推断图像外部的像素

均值迁移

pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None)
@param src源83通道图像。
参数dst与源格式和尺寸相同的目标图像。
@param sp空间窗口半径。
@param sr颜色窗口半径。
@param maxLevel分割金字塔的最大级别。
@param termcrit终止条件:何时停止均值漂移迭代。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值