我想知道是否有人遇到过这个问题。
我可以从matlab中重建与原始图像相似的图像,但是,实际值总是不同的。
例如,原始图像在矩阵中的取值范围为0到1,而我的重构图像的取值范围为-0.2到0.4。
重建后的图像与原始图像相似,只是图像中的数据比例不同。
这是我的意思的一个示例代码。
p=phantom(64);
theta=0:1:179;
r=radon(p,theta);
ir=iradon(r,theta);
figure
subplot(1,2,1);imagesc(p)
subplot(1,2,2);imagesc(ir)
这些结果和我的发现不太一样。
>> min(min(ir))
-0.0583
>> max(max(ir))
0.9658
请记住,逆Radon变换只能近似重建原始图像。只有180个视图,肯定会有一些不同。
Radon变换固有地导致一些信息丢失,因为像素必须在投影和反投影期间被投影到一个新的坐标系统并重新分类。这将导致重建的图像有轻微的退化。拉东变换不像傅里叶变换一样是完全可逆的。
为获得更好的效果,请尝试使用更大的图像尺寸和更多的视角。
p=phantom(256);
theta=0:0.01:179;
还可以尝试使用不同的滤波器(F.B.P.中的F),如Shepp-Logan,它可以减少高频并减少超调。
ir=iradon(r,theta,'linear','Shepp-Logan');