MATLAB 實現 SRCNN 圖像超分辨率重建

MATLAB 實現 SRCNN 圖像超分辨率重建

MATLAB代碼實現,用于基于三層卷積神經網絡的圖像超分辨率重建。代碼參考了多個來源,結合了SRCNN的典型實現步驟。

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 圖像超分辨率重建 youwenfan.com/contentcsb/50734.html

代碼可以在MATLAB中實現基于SRCNN的圖像超分辨率重建。該代碼包括圖像預處理、雙三次插值、SRCNN重建以及結果評估等步驟。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94239.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

知識蒸餾 - 基于KL散度的知識蒸餾 HelloWorld 示例

知識蒸餾 - 基于KL散度的知識蒸餾 HelloWorld 示例 flyfish 知識蒸餾 - 蒸的什么 知識蒸餾 - 通過引入溫度參數T調整 Softmax 的輸出 知識蒸餾 - 對數函數的單調性 知識蒸餾 - 信息量的公式為什么是對數 知識蒸餾 - 根據真實事件的真實概率分布對其進行編碼 知識蒸餾 - …

從結構到交互:HTML5進階開發全解析——語義化標簽、Canvas繪圖與表單設計實戰

一、語義化標簽進階&#xff1a;重構頁面結構的「邏輯語言」 在 HTML5 的舞臺上&#xff0c;語義化標簽是熠熠生輝的主角&#xff0c;它們為網頁賦予了清晰的邏輯結構&#xff0c;使其更易被搜索引擎理解和被開發者維護。其中&#xff0c;<section>與<article>標簽…

標準七層網絡協議和TCP/IP四層協議的區別

分別是什么? OSI七層協議是國際標準組織制定的標準協議。其中七層分別是物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層。 TCP/IP協議是美國軍方在后期網絡技術的發展中提出來的符合目前現狀的協議。其中四層分別是網絡接口層對應七層中的物理層和數據鏈路層,…

前端面試手撕題目全解析

以下是前端面試中常遭遇的“手撕”基礎題目匯總&#xff0c;涵蓋 HTML→JS→Vue→React&#xff0c;每題附經典實現&#xff0f;原理解析&#xff0c;可現場答題或后端總結。 HTML 基礎題 &#x1f4dd; 語義化卡片&#xff08;Semantic Card ARIA&#xff09; <article cl…

道格拉斯-普克算法 - 把一堆復雜的線條變得簡單,同時盡量保持原來的樣子

道格拉斯-普克算法 - 把一堆復雜的線條變得簡單&#xff0c;同時盡量保持原來的樣子 flyfish 道格拉斯-普克算法&#xff08;Douglas-Peucker Algorithm解決的問題其實很日常&#xff1a;把一堆復雜的線條&#xff08;比如地圖上的道路、河流&#xff0c;或者GPS記錄的軌跡&…

團購商城 app 系統架構分析

一、引言 團購商城 APP 作為一種融合了電子商務與團購模式的應用程序&#xff0c;近年來在市場上取得了顯著的發展。它為用戶提供了便捷的購物體驗&#xff0c;同時也為商家創造了更多的銷售機會。一個完善且高效的系統架構是保障團購商城 APP 穩定運行、提供優質服務的基礎。本…

【AI平臺】n8n入門7:本地n8n更新

?0、前言 目標&#xff1a;本地n8n部署后&#xff0c;有新版本&#xff0c;然后進行更新。官方文檔&#xff1a;Docker | n8n Docs特別說明&#xff1a; n8n鏡像更新后&#xff0c;容器重建&#xff0c;所以之前在n8n配置的東西&#xff0c;就莫有了&#xff0c;工作流提前導…

還在使用Milvus向量庫?2025-AI智能體選型架構防坑指南

前言說明&#xff1a;數據來源&#xff1a;主要基于 Milvus&#xff08;v2.3&#xff09;和 Qdrant&#xff08;v1.8&#xff09;的最新穩定版&#xff0c;參考官方文檔、GitHub Issues、CNCF報告、以及第三方評測&#xff08;如DB-Engines、TechEmpower&#xff09;。評估原則…

3-verilog的使用-1

verilog的使用-1 1.判斷上升沿 reg s_d0; reg s_d1; wire signal_up ; //判斷信號的上升沿 assign signal_up (~touch_key_d1) & touch_key_d0; always (posedge clk or negedge rst_n) beginif(rst_n 1b0) begins_d0< 1b0;s_d1< 1b0;endelse begins_d0&…

ESXI虛擬交換機 + H3C S5120交換機 + GR5200路由器組網筆記

文章目錄一、組網拓撲與核心邏輯1. 拓撲結構2. 核心邏輯二、詳細規劃方案1. VLAN 與 IP 地址規劃2. 設備連接規劃三、配置步驟1. H3C S5120 交換機配置&#xff08;VLAN 與端口&#xff09;2. H3C GR5200 路由器配置&#xff08;路由、網關、NAT&#xff09;3. ESXi 虛擬交換機…

python的駕校培訓預約管理系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 該系統通…

webrtc弱網-QualityScaler 源碼分析與算法原理

一. 核心功能QualityScaler 是 WebRTC 中用于動態調整視頻編碼質量的模塊&#xff0c;主要功能包括&#xff1a;QP 監控&#xff1a;持續監測編碼器輸出的量化參數&#xff08;QP&#xff09;丟幀率分析&#xff1a;跟蹤媒體優化和編碼器導致的丟幀情況自適應決策&#xff1a;根…

Maven 快照(SNAPSHOT)

Maven 快照(SNAPSHOT) 引言 Maven 快照(SNAPSHOT)是 Maven 中的一個重要概念,主要用于版本管理。它允許開發者在構建過程中使用尚未發布的版本。本文將詳細介紹 Maven 快照的原理、用途以及如何在項目中配置和使用快照。 Maven 快照原理 Maven 快照是版本號的一部分,…

2025-0803學習記錄20——畢業論文快速整理成小論文

本科畢業論文寫好啦&#xff0c;但是C導要我整理成一篇約8000字的小論文&#xff0c;準備投稿。畢業論文到投稿的小論文&#xff0c;這其實是從“全景展示”到“聚焦精煉”的過程。目前我已經有完整的大論文&#xff08;約6萬字&#xff09;&#xff0c;材料是充足的&#xff0…

VUE2 學習筆記16 插槽、Vuex

插槽在編寫組件時&#xff0c;可能存在這種情況&#xff0c;頁面需要顯示不同的內容&#xff0c;但是頁面結構是類似的&#xff0c;在這種情況下&#xff0c;雖然也可以使用傳參來進行&#xff0c;但傳參時&#xff0c;還需要編寫props等邏輯&#xff0c;略顯重復&#xff0c;而…

IntelliJ IDEA開發編輯器摸魚看股票數據

在IDEA的插件市場中心搜索stock&#xff0c;檢索結果里面的插件&#xff0c;點擊安裝即可安裝后的效果

Linux Deepin深度操作系統應用商店加載失敗,安裝星火應用商店

Linux Deepin國產操作系統優點 Deepin&#xff08;原名Linux Deepin&#xff09;是一款由中國團隊開發的Linux發行版&#xff0c;基于Debian stable分支&#xff0c;以美觀易用的界面和本土化體驗著稱。以下是其核心優點總結&#xff1a; 1. 極致美觀的界面設計 Deepin Deskt…

postgresql創建只讀用戶并授權

postgresql創建只讀用戶并授權 CREATE USER yk WITH ENCRYPTED PASSWORD <your_password>;GRANT USAGE ON SCHEMA public to yk; GRANT SELECT ON ALL TABLES IN SCHEMA public TO yk;根據以上創建的用戶&#xff0c;出現一個問題&#xff0c;對新建的表沒有查詢權限&am…

pytest vs unittest: 區別與優缺點比較

主要區別特性pytestunittest起源第三方庫Python標準庫語法風格更簡潔的Pythonic語法基于Java風格的JUnit測試發現自動發現測試需要繼承TestCase類斷言方式使用Python原生assert使用各種assert方法(assertEqual等)夾具系統強大的fixture系統簡單的setUp/tearDown方法參數化測試內…

Boost.Asio學習(5):c++的協程

協程是什么&#xff1f;協程就是可以“暫停”和“繼續”的函數&#xff0c;像在函數里打個斷點&#xff0c;然后以后可以從斷點繼續運行&#xff0c;而不是重新開始。線程 vs 協程&#xff1a;類比想象你在寫小說&#xff1a;線程&#xff1a;你開了 3 個作者&#xff08;線程&…