Python实现多种图像去噪方法 您所在的位置:网站首页 含噪图像和去噪图像对比 Python实现多种图像去噪方法

Python实现多种图像去噪方法

2024-07-09 22:31| 来源: 网络整理| 查看: 265

Python实现多种图像去噪方法:中值滤波,均值滤波,高通滤波,低通滤波,高斯滤波,同态滤波

图像和视频逐渐成为人们生活中信息获取的重要来源。人们准确地获取信源发出的图像和视频信息需要保证在传输过程中的无失真性,而在传输过程中很容易受到外部噪声干扰,因此需要在接收端采用去噪算法减轻图像的噪声。

本文首先介绍了多种图像去噪的方法:低通滤波,高通滤波,均值滤波,中值滤波,高斯滤波和同态滤波。

然后针对图像传输中常见的椒盐噪声,分别利用上述滤波方法进行了图像去噪,通过实验证明,中值滤波能有效滤除椒盐噪声。

图像去噪

图像和视频信息在传输过程中很容易受到成像设备和外部环境的噪声干扰,导致人们接收到的信息和信源发出的信息差异很大,如果不能很好地消除这些外部噪声,那么人们将会接收到错误的信息。

外部噪声类型多种多样,可以按照噪声的时间特征、频率特征等进行分类。常见的一种噪声是椒盐噪声,也称为脉冲噪声。它的出现通常是由于图像信号突然受到强烈的干扰而产生。它是一种随机出现的白点或黑点,它会导致图像中暗的区域突然出现一个白点,亮的区域突然出现一个黑点。

低通滤波

低通滤波器可以允许图像信号频域中的低频分量通过而组织高频分量通过,因此低通滤波可以过滤高频噪声。理想的低通滤波器:

在这里插入图片描述

高通滤波

与低通滤波相反,高通滤波可以允许图像信号频域中的高频分量通过而抑制低频分量,因此高通滤波可以过滤掉低频噪声。理想的高通滤波器:

在这里插入图片描述

均值滤波

均值滤波是指将图像中的每个像素点的灰度值替换为该像素点附近灰度值的平均值。均值滤波器:

在这里插入图片描述

中值滤波

中值滤波是指将图像中的每个像素点的灰度值替换为该像素点附近灰度值的中值。中值滤波器:

在这里插入图片描述

高斯滤波

高斯滤波是一种线性平滑滤波,图像中每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到,它适用于消除高斯噪声。高斯滤波器:

在这里插入图片描述

同态滤波

同态滤波是指把频率滤波和空域灰度变换结合起来的一种图像处理方法,它可以用于删除由于不均匀照明引起的图像中的大阴影区域。同态滤波器:

在这里插入图片描述

Python代码实现低通、高通滤波等 # @description: # @author:Jianping Zhou # @email:[email protected] # @Time:2022/11/13 16:37 import cv2 import numpy as np import matplotlib.pyplot as plt import math from skimage import io from salt_pepper_noise import pepper_and_salt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 def salt_pepper(image, salt, pepper): """ 添加椒盐噪声的图像 :param image: 输入图像 :param salt: 盐比例 :param pepper: 椒比例 :return: 添加了椒盐噪声的图像 """ height = image.shape[0] width = image.shape[1] pertotal = salt + pepper # 总噪声占比 noise_image = image.copy() noise_num = int(pertotal * height * width) for i in range(noise_num): rows = np.random.randint(0, height - 1) cols = np.random.randint(0, width - 1) if (np.random.randint(0, 100)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有