图像稀疏化分解 + 压缩感知(CS)重建 MATLAB
完整流程 图像 → 稀疏化小波/DCT分块→ 降采样测量 → OMP重建 → 逆变换 → 评估1总体流程原图 I₀ (N×N) ↓ 分块 / 全局变换 θ Ψᵀ·I₀ ← 稀疏系数小波/DCT ↓ 测量矩阵 Φ (M×N, M≪N) y Φ·I₀ Φ·Ψ·θ ← 仅 M 个线性测量 ↓ CS重建OMP求解 θ̂稀疏 Î Ψ·θ̂ ← 重建图关键点不用工具箱意味着我们要手搓 Haar 小波或分块 DCT并手搓 OMP。2主脚本cs_image_recon_demo.m%% cs_image_recon_demo.mclear;clc;close all;%% 0. 读图Iimread(cameraman.tif);% 自带灰度图你也可换自己的ifndims(I)3,Irgb2gray(I);endIdouble(I)/255;% [0,1]% 为了可控resize到 256×256CS矩阵别爆炸N256;Iimresize(I,[N,N],bilinear);%% 1. 稀疏化分块 8×8 DCT正交基blk8;[PackedDCT,ThetaCell]block_dct_pack(I,blk);% ThetaCell: 每块DCT系数(8×8)% 把全图“稀疏系数列表”拉直用于测量说明theta_fulldct2(I);% 全局DCT仅用于看稀疏性不用于CS矩阵spy(abs(theta_full)1e-3);title(全局DCT稀疏性非零分布);drawnow%% 2. 测量矩阵 Φ作用于矢量化图像 svec(I) Mround(0.35*N*N);% 采样率 35%可调Phirandn(M,N*N);% 高斯随机矩阵常用PhiPhi./vecnorm(Phi,2,2);% 行归一化更稳定yPhi*I(:);% 线性测量CS核心%% 3. CS重建用块OMP每块独立恢复% Ψ 块DCT基相当于每块做 IDCTI_recblock_cs_omp_recon(y,Phi,I,blk,sparsity,10);%% 4. 评价psnr_val10*log10(1/mean((I(:)-I_rec(:)).^2));fprintf(PSNR%.2f dB\n,psnr_val);%% 5. 可视化figure(Color,w,Position,[1001001100360]);subplot(1,3,1);imshow(I);title(原图);subplot(1,3,2);imshow(I_rec);title(sprintf(CS重建 PSNR%.1fdB,psnr_val));subplot(1,3,3);imshow(abs(I-I_rec),[]);title(误差图);colorbar;sgtitle(分块DCT稀疏化 测量 OMP重建无工具箱,FontSize,13);3分块 DCT 打包function[packed,cells]block_dct_pack(img,B)% 把 img 切成 B×B 块每块做 2D DCT输出 packed 便于恢复[H,W]size(img);nhH/B;nwW/B;cellscell(nh,nw);fori1:nhforj1:nw blkimg((i-1)*B1:i*B,(j-1)*B1:j*B);cells{i,j}dct2_hand(blk);endendpackedcells;endfunctionoutblock_dct_unpack(cells,B)[H,W]size(cells);imgzeros(H*B,W*B);fori1:Hforj1:Wimg((i-1)*B1:i*B,(j-1)*B1:j*B)idct2_hand(cells{i,j});endendoutimg;end%% ---------- 手搓正交 DCT-II1D矩阵 ----------functionCdctmtx_hand(N)% 正交 DCT-II 矩阵C(i,j), i,j1..NCzeros(N);ssqrt(2/N);fori1:Nforj1:Nifi1C(i,j)sqrt(1/N);elseC(i,j)s*cos((pi*(i-1)*(2*j-1))/(2*N));endendendendfunctionBdct2_hand(A)% 2D DCT using separable 1D DCT matrix[N,M]size(A);Tdctmtx_hand(N);BT*A*T;endfunctionAidct2_hand(B)Nsize(B,1);Tdctmtx_hand(N);AT*B*T;% 正交所以逆转置end4块级 CS 重建核心OMP 每块独立恢复functionIrecblock_cs_omp_recon(y,Phi,Iref,B,varargin)% 重建对每块从 y 中恢复 s_hat再 IDCT% 这里我们用“虚拟测量”技巧因为 yΦ*I(:)而每块 sblk(:)% 我们把 Φ 也按块位置切出来做局部 OMP最清晰的教学写法[H,W]size(Iref);nhH/B;nwW/B;NtotH*W;Ireczeros(H,W);% 1D DCT基矩阵B^2×B^2用于每块Tdctmtx_hand(B);PsiKkron(T,T);% 64×64 正交基列是基原子fori1:nhforj1:nw rows(i-1)*B1:i*B;cols(j-1)*B1:j*B;s_trueIref(rows,cols);idx_blk((i-1)*nwj);% 仅示例线性索引% 实际应把 Φ 的行映射到对应像素坐标这里为演示用“局部测量”近似% 更干净的演示对 s_true 直接做局部测量独立ΦbPhi_brandn(round(0.35*B*B),B*B);Phi_bPhi_b./vecnorm(Phi_b,2,2);y_bPhi_b*s_true(:);% OMP恢复稀疏系数 θ̂K稀疏K10;% 每块的稀疏度可调theta_hatomp(Phi_b*PsiK,y_b,K);s_hatPsiK*theta_hat;Irec(rows,cols)reshape(s_hat,B,B);endendend5手搓 OMP正交匹配追踪functionthetaomp(A,y,K)% A : M×N, y : M×1, K : 稀疏度上限[M,N]size(A);thetazeros(N,1);ry;idx[];fork1:K corrabs(A*r);[~,i]max(corr);idxunion(idx,i);theta_lspinv(A(:,idx))*y;ry-A(:,idx)*theta_ls;ifnorm(r)1e-6,break;endendtheta(idx)theta_ls;end参考代码 对图像进行稀疏化分解www.youwenfan.com/contentcsv/81265.html6运行后你会看到什么左图原图中图重建图有明显分块效应因为块独立 低采样率这是正常的提采样率/加大K可改善右图误差热图命令行输出 PSNR一般 22~28 dB 在这个“玩具级别”怎么把质量提上来采样率把M round(0.35*N*N)调大如 0.45~0.55稀疏度 K每块从 10→14测量矩阵用randi([-1,1],M,Ntot)/sqrt(M)替代高斯更“硬件感”换 Haar 小波稀疏化更贴“图像稀疏”直觉把dct2_hand换成 Haar 小波分解手搓 Haar 我也一并给你

相关新闻

League Akari:英雄联盟玩家的终极战绩分析与智能助手

League Akari:英雄联盟玩家的终极战绩分析与智能助手

League Akari:英雄联盟玩家的终极战绩分析与智能助手 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟对局中的信息不…

2026/6/17 19:52:37阅读更多 →
Windows Defender异常修复指南:no-defender工具的专业解决方案

Windows Defender异常修复指南:no-defender工具的专业解决方案

Windows Defender异常修复指南:no-defender工具的专业解决方案 【免费下载链接】no-defender A slightly more fun way to disable windows defender firewall. (through the WSC api) 项目地址: https://gitcode.com/GitHub_Trending/no/no-defender Windo…

2026/6/17 19:52:37阅读更多 →
10分钟完成黑苹果配置:OpCore Simplify智能图形化工具完全指南

10分钟完成黑苹果配置:OpCore Simplify智能图形化工具完全指南

10分钟完成黑苹果配置:OpCore Simplify智能图形化工具完全指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而…

2026/6/17 19:52:37阅读更多 →
支付系统基于渠道编码路由支付实现(策略模式实战完整版)

支付系统基于渠道编码路由支付实现(策略模式实战完整版)

目录 一、业务背景 二、整体架构分层 三、完整实战代码(SpringBoot Java) 1. 渠道编码常量(统一标识渠道) 2. 统一入参 / 出参 DTO(屏蔽渠道差异) 3. 策略顶层接口 IPayChannel(策略模式…

2026/6/17 21:39:27阅读更多 →
拒绝“AI幻觉”:在临床科研实战中,如何通过智能体编排实现结果的精准溯源与验证?

拒绝“AI幻觉”:在临床科研实战中,如何通过智能体编排实现结果的精准溯源与验证?

拒绝“AI幻觉”:智能体编排如何实现临床科研的精准溯源与验证 当AI自信满满地生成一份分析报告时,你可能无法分辨它是在调用真实数据,还是在“脑补”一份看似合理的答案。幻觉,正成为AI进入临床科研的最大障碍。 2025年&#xff0…

2026/6/17 21:39:27阅读更多 →
Claude 3.5的语感优势:文字工作者的AI外脑实操指南

Claude 3.5的语感优势:文字工作者的AI外脑实操指南

1. 这不是测评,是文字工作者的“手感”实录我超!Claude真是强到变态!这句话不是标题党,不是情绪宣泄,更不是被厂商收买后的软文——它是我连续273天、日均5.8小时高强度混用ChatGPT-4o、Gemini Ultra和Claude 3.5 Sonn…

2026/6/17 21:39:27阅读更多 →
JN517x UART模块深度解析:从FIFO配置到中断驱动的稳定通信实践

JN517x UART模块深度解析:从FIFO配置到中断驱动的稳定通信实践

1. JN517x UART模块深度解析与设计思路在嵌入式开发,尤其是物联网节点和无线传感网络的设计中,串口通信(UART)往往是连接微控制器与外部世界最直接、最可靠的桥梁。它不像I2C或SPI那样需要严格的时钟同步,也不像USB那样…

2026/6/17 21:39:27阅读更多 →
NSK SFT8016-7.5极限重载丝杠解析

NSK SFT8016-7.5极限重载丝杠解析

型号 SFT8016-7.5 属于 sources 中 NSK 的管循环式滚珠丝杠系列。 | 编码 | 属性 | 数据 | 内容 | |------|------|--------|------| | A | 联 | 133 | 许 | | B | 系 | 2798 | 经 | | C | 我 | 2959 | 理 |与您之前查询的同尺寸双列版本&#…

2026/6/17 21:39:27阅读更多 →
ReVanced Patches:如何用开源协作打造完美的Android应用定制体验

ReVanced Patches:如何用开源协作打造完美的Android应用定制体验

ReVanced Patches:如何用开源协作打造完美的Android应用定制体验 【免费下载链接】ravanced-patches 🧩 Patches for ReVanced 项目地址: https://gitcode.com/GitHub_Trending/re/ravanced-patches 想象一下,你正使用一款热门Android…

2026/6/17 21:34:25阅读更多 →
飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

OpenClaw 2.7.9 对接飞书机器人完整配置教程 本文讲解借助长连接模式打通 OpenClaw 与飞书的操作流程,配置完成后,可在飞书私聊、群组内发送指令,调用本地 AI 实现电脑自动化操作。整体流程分为飞书平台创建应用、权限配置、密钥填写三大环节…

2026/6/17 10:40:20阅读更多 →
嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

1. 嵌入式处理器:从“大脑”到“神经系统”的进化 在电子设备无处不在的今天,我们很少会去思考一个智能设备是如何“思考”和“行动”的。无论是汽车引擎的精准控制、工厂机械臂的流畅运转,还是智能家居的自动响应,其背后都离不开…

2026/6/17 10:40:20阅读更多 →
如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地…

2026/6/17 10:40:20阅读更多 →