【radon】图像的radon变换matlab仿真

1.软件版本

matlab2013b

2.本算法理论知识

3.部分源码

clc;
clear;
close all;
warning off;
pack;
addpath 'func\'

%Pixel Size
Pix_Size = 32;
[I,E]    = phantom(Pix_Size);
figure;
imshow(I);

[rays,sino] = siddon(I);
ind         = find(sum(rays,2));
A           = rays(ind,:);
b           = sino(:); 
b           = b(ind);

%calculate the singular value of A
s           = svds(A,size(A,2));
%plot loglog figure
figure;
subplot(121);
plot(s,'b-o');
axis([0,size(A,2),0,60]);
grid on;
axis square;
subplot(122);
loglog(s,'b-o');
axis([0,size(A,2),0,60]);
grid on;
axis square;


%Delete rows from the matrix and comment on the effect of this on the singular values
%Delete 500 rows
A2          = A;
A2(1:500,:) = [];
s2          = svds(A2,size(A2,2));

%Delete 1000 rows
A3          = A;
A3(1:1000,:)= [];
s3          = svds(A3,size(A3,2));

%Delete 2000 rows
A4           = A;
A4(1:2000,:) = [];
s4           = svds(A4,size(A4,2));


figure;
plot(s,'b');
hold on;
plot(s2,'r');
hold on;
plot(s3,'k');
hold on;
plot(s4,'g');
hold off;
axis([0,size(A,2),0,60]);
grid on;
legend('Initial singular values','singular values after delete 500 rows','singular values after delete 1000 rows','singular values after delete 2000 rows');







4.仿真结论

        课题中,这里开始说明本课题的研究工作, 我们首先需要一个SLP32*32的图片作为测试图片,这个图片可以使用MATLAB指令phantom产生。

   

这个部分,我们产生了测试使用的32*32像素的图像:

然后根据这个图像,产生后面课题所要求的A和b矩阵和向量。

 通过这段代码,我们可以通过图像得到对应的稀疏矩阵A和向量b。

 main1.m

    绘制奇异值曲线,用loglog坐标系来画矩阵A的奇异值图,然后计算矩阵的rank然后分析奇异值的衰减情况,将矩阵中的行删除,然后分析这个情况对奇异值的影响。

 然后,我们按要求,删除A中的行,然后再绘制奇异值曲线图。

 从仿真结果可知,当删除rows的时候,奇异值会衰减的更快。

main2.m

     使用matlab的backslash操作来重建图像,然后分析一下结果是怎么变化的,当加入b一个随机的误差的时候。

    

     首先,重建效果如下所示:

     所以重建图像为I2 = A\B;

然后,我们为了分析重建效果,这里我们将计算原图像和重建图像之间的PSNR值来分析重建质量。

仿真效果如下所示:

PSNR = 795.3637;

加入error到b,这里我们加入三个不同大小的error到b上。

这三个图的PSNR分布为216.7857,173.3244,124.4959,由此可见,当err逐渐增加的时候,图像的质量逐渐降低。

main3\main3.m

这里就是设计一个用户操作界面,分析使用Tikhonov算法,改变数据的误差然后分析对Tikhonov算法得到的结果产生的影响。

    运行main3.m,我们可以得到如下的界面:

上面三个参数,分别表示的是初始图片的大小,误差大小以及算法中参数alpha的值。

5.参考文献

[1]刘喜武, 刘洪, 李幼铭. 高分辨率Radon变换方法及其在地震信号处理中的应用[J]. 地球物理学进展, 2004, 19(1):8-15.A28-07

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/124834320