数字图像处理之图像模糊

您所在的位置:网站首页 matlab模糊图像处理例程 数字图像处理之图像模糊

数字图像处理之图像模糊

2023-07-16 16:41| 来源: 网络整理| 查看: 265

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

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越大,时间越久,但是模糊的效果越好。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3