MATLAB iradon怎么用?新手也能快速上手的方法!

吉云

今天心血来潮,想搞搞图像处理,就琢磨起MATLAB里的iradon函数。这玩意儿听起来挺玄乎,就是把图像的投影数据给它“反”回去,变回原始图像。有点像CT扫描的逆过程,挺有意思的。

动手前的准备

我有点懵,不知道从哪儿下手。于是我就去网上搜搜资料,看看别人是怎么用这个函数的。网上资料还真不少,各种专业术语,看得我头大。不过慢慢地也摸到一些门道。

MATLAB iradon怎么用?新手也能快速上手的方法!

我知道要用这个函数,得先有个“投影数据”。这玩意儿是简单来说,就是把一个图像从不同角度“拍”一遍,记录下来的数据。就像CT扫描,从各个角度给人体拍X光片一样。

搞个图像来试试

有大概的解后,我就开始动手实践。我没急着自己去弄投影数据,那太麻烦。我先找个现成的图像来试试,就是MATLAB自带的那个“Shepp-Logan Head”图像,这图像在图像处理界挺有名的,经常被拿来做实验。

我用phantom函数把这个图像加载进来:

P = phantom(256);

imshow(P)

MATLAB iradon怎么用?新手也能快速上手的方法!

图像显示出来,一个模拟人头部的图像,挺清晰的。

模拟投影

就是模拟投影的过程。我用radon函数来做这个事情。这个函数就是用来计算图像的投影数据的。

我设置三个不同的投影角度:

theta1 = 0:10:170;

[R1,xp] = radon(P,theta1);

MATLAB iradon怎么用?新手也能快速上手的方法!

这里,theta1就是一个角度的集合,从0度到170度,每隔10度取一个值。radon函数会根据这些角度来计算投影数据,结果保存在R1里。那个xp是干啥的我也不清楚。

见证奇迹的时刻

有投影数据,就可以用iradon函数来重建图像!我激动地搓搓手,输入以下代码:

I1 = iradon(R1,theta1);

imshow(I1)

运行!Duang的一下,图像出来!虽然有点模糊,但确实是那个“Shepp-Logan Head”图像!我成功!

MATLAB iradon怎么用?新手也能快速上手的方法!

调整参数,看看效果

我有点不满足,想看看能不能把图像重建得更清晰一些。于是我又去查查iradon函数的用法。原来,这个函数还有几个可选参数,可以用来调整重建的效果。

我试着加几个参数:

I2 = iradon(R1,theta1,'linear','Ram-Lak');

imshow(I2)

这里,'linear'表示使用线性插值,'Ram-Lak'表示使用Ram-Lak滤波器。运行结果,图像确实清晰一些!

MATLAB iradon怎么用?新手也能快速上手的方法!

折腾完毕,收工!

折腾半天,我对iradon函数总算是有一个初步的解。虽然还有很多细节没搞明白,但至少能跑起来,也算是一个小小的进步。以后有时间再慢慢深入研究。

这回实践还是挺有收获的。我发现,学习这些东西,光看理论是不行的,还得动手实践,才能真正理解它的原理和用法。而且遇到问题不要怕,多查资料,多尝试,总能找到解决办法的。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]