资源简介
该算法是对GOMP的完整实现,使用者可改变图片后直接使用
代码片段和文件信息
%%%%%%%%%%%%广义正交匹配追踪(gOMP)%%%%%%%%%%%
% 分段基追踪(BP)算法
% 读文件
% X=imread(‘C:\Users\zkdn\Desktop\MATLABdata\I30\I30.jpg‘);
% X=double(X);
% [ab]=size(X);
load C:\Users\zkdn\Desktop\MATLABdata\I1\I1.mat
X=I1;
background=imopen(Xstrel(‘disk‘15));%获取背景信息
X=imsubtract(Xbackground);%利用函数去除背景
X=double(X);
[ab]=size(X);
% 小波变换矩阵生成
ww=dwt2(a‘haar‘);
% 小波变换让图像稀疏化(注意该步骤会耗费时间,但是会增大稀疏度)
X1=ww*sparse(X)*ww‘;
% X1=X;
X1=full(X1);
% 随机矩阵生成
M=256;
R=randn(Ma);
% R=randn(a);
% R=mapminmax(R0255);
% R=round(R);
% 测量值
Y=R*X1;
A=R*ww
% OMP算法
% 恢复矩阵
X2=zeros(ab);
% 按列循环
for i=1:b
% 通过OMP,返回每一列信号对应的恢复值(小波域)
rec=CS_gOMP( Y(:i)AM );%BP_linprog( sPhi )
% 恢复值矩阵,用于反变换
X2(:i)=rec;
end
%%%%
% figure(4);
% X2=full(X2);
% imshow(uint8(X2));
% title(‘OMP计算后图像‘);
% 原始图像
figure(1);
imshow(uint8(X));
title(‘原始图像‘);
% 变换图像
% figure(2);
% imshow(uint8(X1));
% title(‘小波变换后的图像‘);
% 压缩传感恢复的图像
figure(3);
% 小波反变换
X3=ww‘*sparse(X2)*ww;
% X3=X2;
X3=full(X3);
imshow(uint8(X3));
title(‘GOMP恢复的图像‘);
% 误差(PSNR)
% MSE误差
errorx=sum(sum(abs(X3-X).^2));
% PSNR
psnr=10*log10(255*255/(errorx/a/b))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [ theta ] = CS_gOMP( yAKS )
% CS_gOMP
% Detailed explanation goes here
% y = Phi * x
% x = Psi * theta
% y = Phi*Psi * theta
% 令 A = Phi*Psi 则y=A*t
相关资源
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
- matlab正弦信号发生器的设计
评论
共有 条评论