Python实现图像去噪(中值去噪和均值去噪)

article/2025/9/28 2:02:59

实现对图像进行简单的高斯去噪和椒盐去噪。代码如下:

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import random
import scipy.misc
import scipy.signal
import scipy.ndimage
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=10)def medium_filter(im, x, y, step):sum_s = []for k in range(-int(step / 2), int(step / 2) + 1):for m in range(-int(step / 2), int(step / 2) + 1):sum_s.append(im[x + k][y + m])sum_s.sort()return sum_s[(int(step * step / 2) + 1)]def mean_filter(im, x, y, step):sum_s = 0for k in range(-int(step / 2), int(step / 2) + 1):for m in range(-int(step / 2), int(step / 2) + 1):sum_s += im[x + k][y + m] / (step * step)return sum_sdef convert_2d(r):n = 3# 3*3 滤波器, 每个系数都是 1/9window = np.ones((n, n)) / n ** 2# 使用滤波器卷积图像# mode = same 表示输出尺寸等于输入尺寸# boundary 表示采用对称边界条件处理图像边缘s = scipy.signal.convolve2d(r, window, mode='same', boundary='symm')return s.astype(np.uint8)def convert_3d(r):s_dsplit = []for d in range(r.shape[2]):rr = r[:, :, d]ss = convert_2d(rr)s_dsplit.append(ss)s = np.dstack(s_dsplit)return sdef add_salt_noise(img):# rows, cols, dims = img.shape#R = np.mat(img[:, :, 0])# G = np.mat(img[:, :, 1])#B = np.mat(img[:, :, 2])rows, cols= img.shapeR = np.mat(img[:, :])G = np.mat(img[:, :])B = np.mat(img[:, :])Grey_sp = R * 0.299 + G * 0.587 + B * 0.114Grey_gs = R * 0.299 + G * 0.587 + B * 0.114snr = 0.9noise_num = int((1 - snr) * rows * cols)for i in range(noise_num):rand_x = random.randint(0, rows - 1)rand_y = random.randint(0, cols - 1)if random.randint(0, 1) == 0:Grey_sp[rand_x, rand_y] = 0else:Grey_sp[rand_x, rand_y] = 255#给图像加入高斯噪声Grey_gs = Grey_gs + np.random.normal(0, 48, Grey_gs.shape)Grey_gs = Grey_gs - np.full(Grey_gs.shape, np.min(Grey_gs))Grey_gs = Grey_gs * 255 / np.max(Grey_gs)Grey_gs = Grey_gs.astype(np.uint8)# 中值滤波Grey_sp_mf = scipy.ndimage.median_filter(Grey_sp, (7, 7))Grey_gs_mf = scipy.ndimage.median_filter(Grey_gs, (8, 8))# 均值滤波Grey_sp_me = convert_2d(Grey_sp)Grey_gs_me = convert_2d(Grey_gs)plt.subplot(321)plt.title('加入椒盐噪声',fontproperties=font_set)plt.imshow(Grey_sp, cmap='gray')plt.subplot(322)plt.title('加入高斯噪声',fontproperties=font_set)plt.imshow(Grey_gs, cmap='gray')plt.subplot(323)plt.title('中值滤波去椒盐噪声(8*8)',fontproperties=font_set)plt.imshow(Grey_sp_mf, cmap='gray')plt.subplot(324)plt.title('中值滤波去高斯噪声(8*8)',fontproperties=font_set)plt.imshow(Grey_gs_mf, cmap='gray')plt.subplot(325)plt.title('均值滤波去椒盐噪声',fontproperties=font_set)plt.imshow(Grey_sp_me, cmap='gray')plt.subplot(326)plt.title('均值滤波去高斯噪声',fontproperties=font_set)plt.imshow(Grey_gs_me, cmap='gray')plt.show()def main():img = np.array(Image.open('E:/pycharm/GraduationDesign/Test/testthree.png'))add_salt_noise(img)if __name__ == '__main__':main()

  效果如下

                                  


http://chatgpt.dhexx.cn/article/mHSZ2CTs.shtml

相关文章

七种滤波去噪方式

创建两个混合信号,便于更好测试滤波器效果。同时用七种滤波方法测试。 混合信号Mix_Signal_1 信号Signal_Original_1白噪声。 混合信号Mix_Signal_2 信号Signal_Original_2白噪声。 1.巴特沃斯低通滤波器去噪 巴特沃斯滤波器适合用于信号和噪声没有重叠的情况下。…

图像恢复(加噪与去噪)

人工智能导论实验导航 实验一:斑马问题 https://blog.csdn.net/weixin_46291251/article/details/122246347 实验二:图像恢复 https://blog.csdn.net/weixin_46291251/article/details/122561220 实验三:花卉识别 https://blog.csdn.net/…

去噪很有效的代码

去噪很有效的代码 主要思想:通过筛选面积小的联通区域,来实现去噪。 主要使用函数:cv2.connectedComponentsWithStats(img, connectivity),详解见:计算不规则连同区域 1. 原图与效果图 2. 实现代码 import cv2 impo…

图像去噪技术

目录 1.1图像去噪的基本概念 1.2 去噪效果评价标准 ​ 1.3传统去噪方法(简单介绍) 1.4 非局部均值去噪(NLmeans) ​ 1.6基于稀疏模型的去噪方法 总结 噪声的产生是信号在采集、传输以及记录过程中,受到成像设备自…

图像修复与去噪

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

小波阈值去噪原理及实现

小波阈值去噪原理及实现 1.小波阈值去噪的基本原理2.小波阈值去噪需要考虑的问题3.小波阈值的实现 1.小波阈值去噪的基本原理 将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小…

python 图像平滑去噪(噪声+滤波器)

记录自己用python加opencv实现的图像处理的入门操作,各种平滑去噪滤波器的实现。 包括有:产生的椒盐噪声、高斯噪声等等,以及使用的中值滤波、平均滤波、高斯滤波等等。 分成了两部分来实现:一是自编写函数来实现,二是…

小波阈值去噪

目录 1.概念 2.原理 3.影响降噪效果的因素 3.1小波基的选择 3.2分解层数的选择 3.3阈值的选择 3.4阈值函数的选择 4.MATLAB代码 参考文献 1.概念 小波分析即用Mallat塔式算法对信号进行降阶分解。该算法在每尺度下将信号分解成近似分量与细节分量。近似分量表示信号的…

去噪

平滑去噪(低通滤波器) 噪声的产生是因为图像中的某些像素的灰度值发生了突变,使得和周围区域不和谐。除噪其实去除高频噪声,使得图像中的噪声像素的灰度值不那么突兀。 噪声去除有基于卷积(高斯滤波,均值…

图像的去噪

一、图像噪声概要 1. 图像噪声的产生主要源于两个方面: 图像获取过程中 常见的图像传感器CCD和CMOS在采集图像过程中,由于受到工作环境或者电子电路结构的影响,会引入各种噪声,如热噪声、光子噪声、暗电流噪声等。 信号传输过程…

图像去噪方法

图像去噪是指减少数字图像中噪声的过程。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声等的影响,在这种条件下得到的图像称为含噪图像或噪声图像。噪声是干扰图像的重要因素。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声…

搞懂语音去噪

文章目录 1 概述2 传统语音去噪2.1 谱减法2.2 维纳滤波法 3 深度语音去噪参考资料 1 概述 语音去噪(noise reduction)又被称为语音增强(speech enhancement),主要是针对于有人声的音频进行处理,目的是去除那些背景噪声,增强音频中人声的可懂…

几种常用信号平滑去噪的方法(附Matlab代码)

几种常用信号平滑去噪的方法(附Matlab代码) 1 滑动平均法 1.0 移动平均法的方法原理1.1 matlab内自带函数实现移动平均法1.2 利用卷积函数conv()实现移动平均法1.3 利用filter滤波函数实现移动平均法1.4 移动平均的幅频响应1.5 时域和频域的转换关系 2 …

图像噪声、去噪基本方法合集(Python实现)

文章目录 前言本文主要参考冈萨雷斯的数字图像处理 (第4版),介绍图片中一些常见的噪声形式和常用的去噪方法,并且给出相应滤波方法的实现代码。 一、噪声分类1、高斯噪声2、泊松噪声3、椒盐噪声4、瑞利噪声5、爱尔兰(伽…

干货 | 6款漏扫工具来了(附工具下载链接)

渗透测试收集信息完成后,就要根据所收集的信息,扫描目标站点可能存在的漏洞了,包括我们之前提到过的如:SQL注入漏洞、跨站脚本漏洞、文件上传漏洞、文件包含漏洞及命令执行漏洞等,通过这些已知的漏洞,来寻找…

webshell扫描工具

webshell扫描工具,这是一种内部有多个漏洞,可自动进行url采集,自采集多个引擎和友情链接url,轻松日出上百。 演示地址:https://note.youdao.com/s/Xi9S4I16 目录遍历攻击又称(目录爬升,目录回溯…

网站漏洞扫描工具AWVS_v13下载和安装

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它能够测试你的网站安全,检测网站的安全漏洞,如sql 注入,交叉站点脚本等等。 AWVS_v13软件的下载 1、AWVS漏洞扫描工具是一款…

2022-渗透测试-推荐一款好用的网站漏洞扫描工具-WPscan

目录 WPscan简介 WPscan工具利用 查看帮助信息 更新漏洞库 扫描WordPress漏洞 扫描wordpress用户 扫描所使用的主题和漏洞 指定字典暴力破解密码 WPscan简介 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它可以全面检查wp网站的漏洞,从而能够及时应对…

动手实现简易网站目录扫描器——WebScanner

效果展示 项目目录: 引言 不知是否有小伙伴在学习Web安全相关的知识,如果有的话,那应该对XSS,SQL注入,文件上传,一句话脚本等等基本功应该是再熟悉不过了。最初学习的时候是它,实战最先测试的…

网站指纹扫描工具whatweb

目录 前言whatweb简介whatweb的使用 ~~~~~~~~ 因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…