64、基于去噪卷积神经网络的彩色图像去噪(matlab)

1、基于去噪卷积神经网络的彩色图像去噪的原理及流程

基于去噪卷积神经网络的彩色图像去噪是一种基于深度学习的图像处理技术,可以有效地去除图像中的噪声,提高图像的质量。下面是在Matlab中实现基于去噪卷积神经网络的彩色图像去噪的原理及流程:

  1. 数据准备:准备包含训练集和验证集的彩色图像数据,同时生成包含噪声的图像作为训练数据。

  2. 网络设计:设计一个去噪卷积神经网络模型,通常包括卷积层、池化层、激活函数以及去噪功能的损失函数。

  3. 网络训练:使用训练集数据对网络进行训练,优化网络参数以使网络能够学习去除图像中的噪声。

  4. 网络验证:使用验证集数据对训练好的网络进行验证,评估网络在未见过的数据上的去噪效果。

  5. 去噪处理:将待处理的彩色图像输入训练好的网络中,通过网络的预测结果去除图像中的噪声。

在Matlab中实现这一流程,可以使用深度学习工具箱(Deep Learning Toolbox)提供的函数和工具,例如designlayers函数来搭建网络模型、trainNetwork函数进行网络训练、以及predict函数对待处理图像进行去噪处理。同时,可以通过调整网络结构、数据准备和超参数等来优化去噪效果。

2、基于去噪卷积神经网络的彩色图像去噪说明

1)说明

使用去噪卷积神经网络从 RGB 图像中去除高斯噪声

3、输入数据

1)说明

将一个彩色图像读入工作区中,并将数据转换为数据类型 double。显示原始彩色图像。

2)代码

pristineRGB = imread("C:\Users\16023\Desktop\基于深度学习的彩色图片去噪\CT1.png");
pristineRGB = im2double(pristineRGB);
figure(1)
imshow(pristineRGB)
title("Pristine Image")

3)视图效果

7ae99d91d08f43eb9022f5e70e642752.png

4、添加噪声

1)说明

将方差为 0.01 的零均值高斯白噪声添加到图像中。imnoise 函数独立地向每个颜色通道添加噪声。

2代码

noisyRGB = imnoise(pristineRGB,"gaussian",0,0.01);
figure(2)
imshow(noisyRGB)
title("Noisy Image")

3)视图效果

5aabbd6032424079b16dda1ee72b8172.png

5、训练神经网络

1)预训练去噪卷积神经网络 DnCNN

代码

[noisyR,noisyG,noisyB] = imsplit(noisyRGB);

2)加载预训练的 DnCNN 网络

代码

net = denoisingNetwork("dncnn");

3)使用 DnCNN 网络去除每个颜色通道的噪声

代码

denoisedR = denoiseImage(noisyR,net);
denoisedG = denoiseImage(noisyG,net);
denoisedB = denoiseImage(noisyB,net);

6、显示去噪后的彩色图像

1)说明

合并去噪的颜色通道以形成去噪后的 RGB 图像

2)代码

denoisedRGB = cat(3,denoisedR,denoisedG,denoisedB);
imshow(denoisedRGB)
title("Denoised Image")

3)视图效果

8aa264c0472f4414972964b6bde6d7b8.png

7、计算信噪比PSNR

1)说明

计算含噪图像和去噪图像的峰值信噪比 (PSNR)。PSNR 越大,噪声相对信号越小,说明图像质量越高。

2)代码

noisyPSNR = psnr(noisyRGB,pristineRGB);
fprintf("\n The PSNR value of the noisy image is %0.4f.",noisyPSNR);
denoisedPSNR = psnr(denoisedRGB,pristineRGB);
fprintf("\n The PSNR value of the denoised image is %0.4f.",denoisedPSNR);The PSNR value of the noisy image is 20.1077.The PSNR value of the denoised image is 35.1933.

8、计算结构相似性 (SSIM) 指数

1)说明

计算含噪图像和去噪图像的结构相似性 (SSIM) 指数。SSIM 指数接近 1 表示与参考图像相当一致,图像质量更高。

2)代码

noisySSIM = ssim(noisyRGB,pristineRGB);
fprintf("\n The SSIM value of the noisy image is %0.4f.",noisySSIM);
denoisedSSIM = ssim(denoisedRGB,pristineRGB);
fprintf("\n The SSIM value of the denoised image is %0.4f.",denoisedSSIM);The SSIM value of the noisy image is 0.3767.The SSIM value of the denoised image is 0.9280.

9、总结

基于去噪卷积神经网络的彩色图像去噪在Matlab中的实现流程包括数据准备、网络设计、网络训练、网络验证和去噪处理。以下是这一过程的总结:

  1. 数据准备:准备包含训练集和验证集的彩色图像数据,同时生成带有噪声的图像数据用于训练。Matlab提供了丰富的图像处理工具和函数,可用于数据加载、预处理等操作。

  2. 网络设计:设计一个包含卷积层、池化层、激活函数和损失函数的去噪卷积神经网络模型。Matlab的深度学习工具箱提供了丰富的函数和工具,可用于构建和调整网络结构。

  3. 网络训练:使用训练集数据对网络进行训练,通过优化算法(如随机梯度下降)来调整网络参数以最小化损失函数。Matlab提供了trainNetwork函数来进行网络训练。

  4. 网络验证:使用验证集数据对训练好的网络进行验证,评估网络的性能和泛化能力。可以使用Matlab的交叉验证等方法进行验证。

  5. 去噪处理:将待处理的彩色图像输入训练好的网络中,通过网络的预测结果去除图像中的噪声。Matlab提供了predict函数来对新数据进行预测处理。

通过以上流程,基于去噪卷积神经网络的彩色图像去噪可实现高效地去除图像中的噪声,提高图像质量,适用于图像处理、计算机视觉等领域。Matlab的丰富函数和工具为实现这一目标提供了便利和支持。

10、源代码

代码

%% 基于去噪卷积神经网络的彩色图像去噪
%使用去噪卷积神经网络从 RGB 图像中去除高斯噪声。%% 输入数据
%将一个彩色图像读入工作区中,并将数据转换为数据类型 double。显示原始彩色图像。
pristineRGB = imread("C:\Users\16023\Desktop\基于深度学习的彩色图片去噪\CT1.png");
pristineRGB = im2double(pristineRGB);
figure(1)
imshow(pristineRGB)
title("Pristine Image")%% 添加噪声
%将方差为 0.01 的零均值高斯白噪声添加到图像中。imnoise 函数独立地向每个颜色通道添加噪声。
noisyRGB = imnoise(pristineRGB,"gaussian",0,0.01);
figure(2)
imshow(noisyRGB)
title("Noisy Image")%% 训练神经网络
%预训练去噪卷积神经网络 DnCNN 对单通道图像进行运算。将含噪 RGB 图像分成三个单独的颜色通道。
[noisyR,noisyG,noisyB] = imsplit(noisyRGB);
%加载预训练的 DnCNN 网络。
net = denoisingNetwork("dncnn");
%使用 DnCNN 网络去除每个颜色通道的噪声。
denoisedR = denoiseImage(noisyR,net);
denoisedG = denoiseImage(noisyG,net);
denoisedB = denoiseImage(noisyB,net);%% 显示去噪后的彩色图像
%合并去噪的颜色通道以形成去噪后的 RGB 图像。
denoisedRGB = cat(3,denoisedR,denoisedG,denoisedB);
imshow(denoisedRGB)
title("Denoised Image")%% 计算信噪比PSNR
%计算含噪图像和去噪图像的峰值信噪比 (PSNR)。PSNR 越大,噪声相对信号越小,说明图像质量越高。
noisyPSNR = psnr(noisyRGB,pristineRGB);
fprintf("\n The PSNR value of the noisy image is %0.4f.",noisyPSNR);
denoisedPSNR = psnr(denoisedRGB,pristineRGB);
fprintf("\n The PSNR value of the denoised image is %0.4f.",denoisedPSNR);
%% 计算结构相似性 (SSIM) 指数
noisySSIM = ssim(noisyRGB,pristineRGB);
fprintf("\n The SSIM value of the noisy image is %0.4f.",noisySSIM);
denoisedSSIM = ssim(denoisedRGB,pristineRGB);
fprintf("\n The SSIM value of the denoised image is %0.4f.",denoisedSSIM);

工程文件

https://download.csdn.net/download/XU157303764/89497554

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367302.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电工电子革新风暴:在线电路仿真软件重塑行业格局

随着科技的不断进步,电工电子行业正迎来一场由在线电路仿真软件引领的革新风暴。这些功能强大的软件工具不仅极大地提高了电路设计的效率,更为整个行业带来了前所未有的冲击和机遇。 仿真软件:电工电子行业的“隐形推手” 在线电路仿真软件…

Hi3861 OpenHarmony嵌入式应用入门--TCP Server

本篇使用的是lwip编写tcp服务端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点,并且密码为PARAM_HOTSPOT_PSK LwIP简介 LwIP是什么? A Lightweight TCP/IP stack 一个轻量级的TCP/IP协议栈 详细介绍请参考LwIP项目官网:lwIP - A Li…

【机器学习】在【Pycharm】中的实践教程:使用【逻辑回归模型】进行【乳腺癌检测】

目录 案例背景 具体问题 1. 环境准备 小李的理解 知识点 2. 数据准备 2.1 导入必要的库和数据集 小李的理解 知识点 2.2 数据集基本信息 小李的理解 知识点 注意事项 3. 数据预处理 3.1 划分训练集和测试集 小李的理解 知识点 注意事项 3.2 数据标准化 小李…

前端Web开发HTML5+CSS3+移动web视频教程 Day3 CSS 第1天

P29 - P43 从此开始进入 CSS 的学习。前面都是 HTML 的学习。 CSS 的作用:美化。 HTML 只是规定了网页内容有哪些,在网页中显示的位置默认是从上到下显示,还带有默认效果,比如超链接有颜色有下划线,无序列表有小圆点…

MeEdu网校系统搜索功能问题处理

MeEdu通过 MeiliSearch 实现全文搜索服务。 一、下载 MeiliSearch 程序 https://github.com/meilisearch/MeiliSearch/releases/tag/v0.24.0 只能下载 v0.24.0 版本,其版本不支持 下载 meilisearch-linux-amd64就可以了 二、上传 MeiliSearch 三、启动命令如下…

华为云安全防护,九河云综合分解优劣势分析

随着全球化的发展,越来越多的企业开始寻求在国际市场上扩展业务,这一趋势被称为企业出海。然而,企业在海外扩张面临诸多隐患与安全挑战,其中因为地域的不同,在安全性方面与国内相比会变得薄弱,从而导致被黑…

antd+vue——实现table组件跨页多选,已选择数据禁止第二次重复选择

需求场景:点击【新增】按钮可以在分页弹窗中跨页多选选择数据后添加到页面中,再次点击【新增】,已经选择过的数据则置灰不让重复选择。 选择后,置灰 点击【确定】数据添加到页面中,可再次点击【新增】进行添加数据 …

FastGPT 手动部署错误:MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo

在运行 FastGPT 时,mongodb 报如下错误: MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo 这是因为 mongo 没有解析出来,在 hosts 文件中添加如下信息: 127.0.0.1 mongo 重新运行 FastGPT 即可。 参考链接&#xff…

基于web的产品管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于web的产品管理系统,java项目。 ecli…

被⽹络罪犯利⽤的5⼤ChatGPT越狱提⽰

⾃ChatGPT发布的近18个月以来,⽹络罪犯们已经能够利⽤⽣成式AI进⾏攻击。OpenAI在其内容政策中制定了限制措施,以阻⽌⽣成恶意内容。作为回应,攻击者们创建了⾃⼰的⽣成式AI平台,如 WormGPT和FraudGPT,并且他们还分享了…

Jmeter下载、安装及配置

1 Jmeter介绍 Jmeter是进行负载测试的工具,可以在任何支持Java虚拟机环境的平台上运行,比如Windows、Linux、Mac。 Jmeter模拟一组用户向目标服务器发送请求,并统计目标服务器的性能信息,比如CPU、memory usage。 2 Jmeter下载 …

应用密码学—(扩展)欧几里得、DES、RSA、SHA-1算法

1. 欧几里得算法 1.1 分析算法的实现原理 欧几里德(Euclid)算法,也既常说的“辗转相除法”,公式为gcd(m, n) { return gcd(n, m%n); },对于任意两个正整数m、n,每次求的一个数字r m % n,然后把…

C语言快速学习笔记

学习网站:C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com) 这个网站知识完整,讲解清晰。 在线C语言编程工具:菜鸟教程在线编辑器 (runoob.com) 国外学习网站:C语言介…

难道 Java 已经过时了?

当一门技术已经存在许多年了,它可能会失去竞争力,而后黯然退场,默默地离开,这对大部分的人来说就已经算是过时了。 Java 于 1995 年正式上线,至今已经走过了 27 个年头,在众多编程技术里算是年龄比较大的语…

【C++】开源:量化金融计算库QuantLib配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍量化交易库QuantLib配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…

【高中数学/基本不等式】已知:a,b皆为正实数,且3a+2b=10 求:3a开方+2b开方的最大值?

【题目】 已知&#xff1a;a,b皆为正实数&#xff0c;且3a2b10 求&#xff1a;3a开方2b开方的最大值&#xff1f; 【解答】 解法一&#xff1a;&#xff08;基本不等式&#xff09; 原式^23a2*根号下(3a*2b)2b102*根号下(3a*2b)<103a2b101020 答&#xff1a;3a开方2b…

[漏洞复现] MetInfo5.0.4文件包含漏洞

[漏洞复现] MetInfo5.0.4文件包含漏洞 MetInfo5.0.4 漏洞代码审计 漏洞出现在about/index.php中&#xff0c;因为利用了动态地址&#xff0c;所以存在漏洞。 漏洞检查语句&#xff08;&#xff01;192.168.109.100是我的服务器ip&#xff0c;需要换成自己的&#xff09;&…

双曲方程初值问题的差分逼近(迎风格式)

稳定性: 数值例子 例一 例二 代码 % function chap4_hyperbolic_1st0rder_1D % test the upwind scheme for 1D hyperbolic equation % u_t + a*u_x = 0,0<x<L,O<t<T, % u(x,0) = |x-1|,0<X<L, % u(0,t) = 1% foundate = 2015-4-22’; % chgedate = 202…

SpringBoot 如何处理跨域请求?你说的出几种方法?

引言&#xff1a;在现代的Web开发中&#xff0c;跨域请求&#xff08;Cross-Origin Resource Sharing&#xff0c;CORS&#xff09;是一个常见的挑战。随着前后端分离架构的流行&#xff0c;前端应用通常运行在一个与后端 API 不同的域名或端口上&#xff0c;这就导致了浏览器的…

方法的用法

一.简介 目前为止我给出的所有的案例都是将代码放在main方法中&#xff0c;就会产生一些问题&#xff1a; 代码冗长&#xff0c;不利于维护变量过多&#xff0c;想不出那么多的变量名没有重用性 那么该如何解决呢&#xff1f; 我们可以编写功能性的代码块&#xff0c;来被ma…