MATLAB 实现 SRCNN 图像超分辨率重建

news/2025/11/9 15:39:51/文章来源:https://www.cnblogs.com/htmlww/p/19204339

MATLAB代码实现,用于基于三层卷积神经网络的图像超分辨率重建。

1. MATLAB代码实现

% 超分辨率卷积神经网络(SRCNN)的测试代码
% 参考文献:Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang.
% 学习深度卷积网络的图像超分辨率,欧洲计算机视觉会议记录,2014年% 清理环境
close all;
clear all;% 读取真实图像
im = imread('Set5\butterfly_GT.bmp'); % 替换为你的图像路径
% im = imread('Set14\zebra.bmp');% 设定参数
up_scale = 3; % 放大倍数
model = 'model\x3.mat'; % 替换为你的模型路径% 仅在照度方面工作
if size(im, 3) > 1im = rgb2ycbcr(im);im = im(:, :, 1);
end
im_gnd = modcrop(im, up_scale); % 裁剪图像以匹配放大倍数
im_gnd = double(im_gnd) / 255; % 归一化到[0, 1]% 双三次插值
im_l = imresize(im_gnd, 1 / up_scale, 'bicubic'); % 缩小
im_b = imresize(im_l, up_scale, 'bicubic'); % 再放大% SRCNN重建
im_h = SRCNN(model, im_b);% 删除边框
im_h = shave(uint8(im_h * 255), [up_scale, up_scale]);
im_gnd = shave(uint8(im_gnd * 255), [up_scale, up_scale]);
im_b = shave(uint8(im_b * 255), [up_scale, up_scale]);% 计算PSNR
psnr_bic = compute_psnr(im_gnd, im_b);
psnr_srcnn = compute_psnr(im_gnd, im_h);% 显示结果
fprintf('双三次插值的峰值信噪比: %f dB\n', psnr_bic);
fprintf('SRCNN重建的峰值信噪比: %f dB\n', psnr_srcnn);figure, imshow(im_b); title('双三次插值');
figure, imshow(im_h); title('SRCNN重建');% 保存结果
imwrite(im_b, ['双三次插值' '.bmp']);
imwrite(im_h, ['SRCNN重建' '.bmp']);

2. SRCNN函数实现

function im_h = SRCNN(model, im_b)% 加载预训练模型load(model);% 提取特征F1 = conv2(im_b, W1, 'same') + B1;F1 = max(0, F1); % ReLU激活函数% 非线性映射F2 = conv2(F1, W2, 'same') + B2;F2 = max(0, F2); % ReLU激活函数% 重建im_h = conv2(F2, W3, 'same') + B3;
end

3. 辅助函数

function im = modcrop(im, scale)% 裁剪图像以匹配放大倍数[h, w] = size(im);h = h - mod(h, scale);w = w - mod(w, scale);im = im(1:h, 1:w);
endfunction im = shave(im, border)% 删除边框im = im(border(1)+1:end-border(1), border(2)+1:end-border(2));
endfunction psnr = compute_psnr(im1, im2)% 计算PSNRmse = mean((im1(:) - im2(:)).^2);psnr = 10 * log10(255^2 / mse);
end

参考代码 MATLAB 实现 SRCNN 图像超分辨率重建 www.youwenfan.com/contentcnl/50734.html

通过代码,可以在MATLAB中实现基于SRCNN的图像超分辨率重建。该代码包括图像预处理、双三次插值、SRCNN重建以及结果评估等步骤。

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

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

相关文章

2025.11.03~2025.11.09

2025.11.03~2025.11.09ZJCPC 2022 A Problem \(T\) 组数据。给定正整数 \(a, b\),你需要确定一个正奇数 \(x\) 和一个正偶数 \(y\) 使得 \(a\) 经过最少操作数变成 \(b\):每次选择将当前数 \(+x\) 或 \(-y\)。求最少…

2025年热门的安全检测检验公司综合排名

摘要 随着矿山安全意识的提升,2025年安全检测检验行业迎来快速发展,专注于设备设施检测和监控系统。本文基于行业数据、用户口碑和技术实力,综合评选出排名前十的公司,为矿山企业提供参考。排名表单结合了权威评测…

2025 秋季 洛阳游

故事要从国庆节说起,那时我刚通关 《饿殍:明末千里行》。故事相当的好,看完结局 ⌊ 不见 ⌉ 略有初中时看完 《龙族:黑月之潮》 的感慨。心想,没法去龙族痛城东京,好歹找个机会去洛阳看看满穗吧!结果一看研学路…

详细介绍:Python 2025年10月最新:多平台域名/小程序封禁检测工具

详细介绍:Python 2025年10月最新:多平台域名/小程序封禁检测工具pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

多快省力插件使用帮助说明

本插件使用需要搭配AutoCAD2024使用,其他版本cad不保证使用正常。 中间可能使用了Ps2025、湘源控规9.010、ArcgisPro3.5及CC工具箱。原则上其他工具有方便的功能则不再重复开发。 插件工具目录: 【多图层不变颜色合并…

Java-148 深入浅出 MongoDB 聚合操控:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:vscode-cpptools调试器扩展:监视表达式高级功能

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

免费的vibe coding???

AgentRouter 刷博客园发现了一个公益平台,好像真的是做公益?

人工势场法(APF)路径规划 MATLAB

人工势场法(APF)路径规划 MATLAB2D 平面移动机器人/无人车场景 三连杆机械臂关节空间场景 避障 + 目标吸引可视化 可调 GUI(滑条实时改参数) 常见陷阱(局部极小、振荡)与改进提示一、2D 平面无人车 APF(精简易读…

ABC431 解题报告

A 略。 B 略。 C 很典型的贪心。我们给两个序列降排序后,对每一个身体找到第一个小于它的头部。 D 另一个很典型的贪心。我们先钦定所有部件安装在身体,然后把总重量小于等于 \(\lfloor \dfrac{m}{2} \rfloor\) 的部…

哈佛放屁都是香的?

“我能吞下玻璃而不伤身体”这句话的出处可以追溯到哈佛大学学生Ethan Mollick在1997年创造的一个名为“I Can Eat Glass”的项目‌。 这个项目的初衷是教会人们用非母语说一句简单而地道的话,以令母语者感到惊讶和尊…

使用MATLAB实现平方倍频法对DSSS/BPSK信号进行载频估计

DSSS/BPSK信号模型与平方倍频法原理 信号模型 DSSS/BPSK信号可以表示为: s(t) = Ad(t)c(t)cos(2πf_c t + φ) + n(t)其中:d(t):数据序列(1) c(t):扩频码序列(1) f_c:载波频率(待估计) φ:载波相位 n(t):…

工具:【多图层不变颜色合并】

有的时候,我们想要这样的效果:规划范围外的用地设置透明度。 一般我们可以使用湘源生成全部用地,并用范围线把内外两部分裁剪开,但是外部的区域用地分成了很多的图层,象这样:图层过多造成了很多处理的不方便和统…

详细介绍:推荐系统实战:python新能源汽车智能推荐(两种协同过滤+Django 全栈项目 源码)计算机专业✅

详细介绍:推荐系统实战:python新能源汽车智能推荐(两种协同过滤+Django 全栈项目 源码)计算机专业✅2025-11-09 15:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: nor…

matlab多目标优化差分进化算法

基于MATLAB的多目标优化差分进化算法(DE)的实现。包括了差分进化算法的基本步骤,如初始化种群、适应度计算、选择、交叉和变异操作,并将其应用于多目标优化问题。 1. 初始化种群 function population = initialize…

MyBatis框架如何处理字符串相等的判断条件

MyBatis是一个优秀的持久层框架,它封装了JDBC,使数据库的交互变得更加便捷和直观。在处理查询操作时,字符串比较是一种常见的需求场景。MyBatis对字符串相等的判断提供了灵活的处理方式。 在使用MyBatis进行字符串等…

深入解析:李宏毅2025春季机器学习作业ML2025_Spring_HW4在kaggle上的实操笔记

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:PostgreSQL + Redis + Elasticsearch 实时同步方案实践:从触发器到高性能搜索

完整教程:PostgreSQL + Redis + Elasticsearch 实时同步方案实践:从触发器到高性能搜索pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

基于最小二乘法的五颗可见卫星伪距定位

一、数学模型构建 1.1 伪距观测方程 对于每颗可见卫星i,观测方程可表示为:(\(x,y,z\)):接收机三维坐标(待解算) (\(x_i,y_i,z_i)\):卫星\(i\)的ECEF坐标(由星历计算) \(Δt\):接收机钟差(待解算) \(ϵi\):…

new day

今日进行二叉树练习,比较不熟练,需多多练习。继续进行java语法复习。未遇到问题。