Python+OpenCV:图像平滑

82 篇文章 20 订阅

Python+OpenCV:图像平滑

二维卷积(图像滤波)

####################################################################################################
# 二维卷积(图像滤波)
def lmc_cv_2d_convolution():
    """
        函数功能: 二维卷积(图像滤波).
        与一维信号一样,图像也可以用各种低通滤波器(LPF)、高通滤波器(HPF)等进行滤波。
        低通滤波器(LPF)有助于消除噪音,模糊图像等。
        高通滤波器(HPF)滤波器有助于在图像中找到边缘。
    """

    # 读取图像
    image = lmc_cv.imread('D:/99-Research/Python/Image/Lena.jpg')
    image = lmc_cv.cvtColor(image, lmc_cv.COLOR_RGB2BGR)

    # 二维卷积(图像滤波)
    kernel = np.ones((5, 5), np.float32) / 25
    filter_image = lmc_cv.filter2D(image, -1, kernel)

    # 显示图像
    pyplot.figure('Image Display')
    pyplot.subplot(121)
    pyplot.imshow(image)
    pyplot.title('Original')
    pyplot.xticks([])
    pyplot.yticks([])
    pyplot.subplot(122)
    pyplot.imshow(filter_image)
    pyplot.title('Averaging')
    pyplot.xticks([])
    pyplot.yticks([])
    pyplot.show()

    # 根据用户输入保存图像
    if ord("q") == (lmc_cv.waitKey(0) & 0xFF):
        # 销毁窗口
        pyplot.close()
    return

图像模糊(图像平滑)

####################################################################################################
# 模糊图像(平滑图像)
def lmc_cv_blurring_image(index):
    """
        函数功能: 模糊图像(平滑图像).
        图像模糊是通过低通滤波核卷积图像来实现, 这对消除噪音很有帮助。
        它实际上从图像中去除高频内容(例如:噪声、边缘), 所以在这个操作中边缘会模糊一点(也有模糊技术不会模糊边缘)。
        OpenCV提供了四种主要的模糊技术:
        均值模糊(Averaging Blurring)、高斯模糊(Gaussian Blurring)、中值模糊(Median Blurring)、双边模糊(Bilateral Filtering)。
    """

    # 读取图像
    image = lmc_cv.imread('D:/99-Research/Python/Image/Plaid.jpg')
    image = lmc_cv.cvtColor(image, lmc_cv.COLOR_RGB2BGR)

    # 显示图像
    pyplot.figure('Image Display')
    pyplot.subplot(121)
    pyplot.imshow(image)
    pyplot.title('Original Image')
    pyplot.xticks([])
    pyplot.yticks([])
    pyplot.subplot(122)
    pyplot.xticks([])
    pyplot.yticks([])

    # 均值模糊(Averaging Blurring)
    if 0 == index:
        blur_image = lmc_cv.blur(image, (5, 5))
        pyplot.imshow(blur_image)
        pyplot.title('Averaging Blurring')

    # 高斯模糊(Gaussian Blurring)
    if 1 == index:
        blur_image = lmc_cv.GaussianBlur(image, (5, 5), 0.5, 0.5, lmc_cv.BORDER_DEFAULT)
        pyplot.imshow(blur_image)
        pyplot.title('Gaussian Blurring')

    # 中值模糊(Median Blurring)
    if 2 == index:
        blur_image = lmc_cv.medianBlur(image, 5)
        pyplot.imshow(blur_image)
        pyplot.title('Median Blurring')

    # 双边模糊(Bilateral Filtering)
    if 3 == index:
        blur_image = lmc_cv.bilateralFilter(image, 9, 75, 75, lmc_cv.BORDER_DEFAULT)
        pyplot.imshow(blur_image)
        pyplot.title('Bilateral Blurring')

    # 显示窗口
    pyplot.show()

    # 根据用户输入保存图像
    if ord("q") == (lmc_cv.waitKey(0) & 0xFF):
        # 销毁窗口
        pyplot.close()
    return

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值