数字图像处理之图像模糊

图像模糊是数字图像处理过程中经常用到的,主要包括以下几个方面:
在这里插入图片描述
导入库

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv

图片显示函数

def show(img):
    if img.ndim == 2:
        plt.imshow(img,cmap='gray')
    else:
        plt.imshow(cv.cvtColor(img,cv.COLOR_RGB2BGR))
    plt.show()

卷积

卷积在神经网络里面是最基本的概念,这里我们简单演示一下。
在这里插入图片描述

#卷积
K = np.ones((3,3))/9.0
img2 = cv.filter2D(img,-1,kernel=K)
show(np.hstack([img,img2]))

经过卷积之后的结果(貌似卷积之后的结果比卷积之前“柔滑”了一些):
在这里插入图片描述

均值模糊

在这里插入图片描述

#均值模糊两个函数
img2 = cv.blur(img,(3,3))
show(np.hstack([img,img2]))
img2 = cv.boxFilter(img,-1,(3,3))
show(np.hstack([img,img2]))

在这里插入图片描述

中值滤波

#中值滤波
img4 = cv.medianBlur(img,3)#3代表滤波模板的大小,必须是大于1的奇数,例如3,5,7等
show(np.hstack([img,img4]))

在这里插入图片描述

高斯模糊

高斯模糊之所以叫高斯模糊,是因为它运用了高斯的正态分布的密度函数。在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。
计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。把它运用于图像算法中,就会使图像出现模糊的效果。
在这里插入图片描述

#高斯滤波
sigma = 1
img2 = cv.GaussianBlur(img,(5,5),sigmaX=sigma)
show(np.hstack([img,img2]))

在这里插入图片描述

双边滤波

双边滤波的目的:保留边缘等高频信息,平滑颜色(灰度)相近的地方。
不断计算卷积核,使得颜色差异越大、加权值越小;距离越远,加权值越小。

#双边滤波
img3 = cv.bilateralFilter(img,-1,sigmaColor=50,sigmaSpace=3)
show(np.hstack([img,img3]))

在这里插入图片描述
sigmaSpace和sigmaColor越大,时间越久,但是模糊的效果越好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

starlet_kiss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值