请问如何用MATLAB实现radon变换?

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:51:57
请问如何用MATLAB实现radon变换?

例子如下:
:r=radon(im,30);%im是图像矩阵
解决方法如下:
Radon 变换是平行束对图像的线积分,根据各个角度得到的一系列投影值逆radon重建得到原始图像。
变换角度默认是逆时针,r=radon(im,30);得到的是一维数组。
平行束与X轴夹角为30度时,距原点不同距离的投影线(平行束)上对图像的线积分。[R,Xp] = RADON(...) XP对应平行束的位置。

theta=0:180 theta是radon变换的角度,可以自由设置,这里是从0°到180°一共181个角度,如果只求等分的60个角度的radon变换,可以改成theta=0:3:177;如果只求一个特殊角度的radon变换可以写成theta=x; 这里x就是希望的角度。
R = radon(I, theta)
R是存储radon变换的值,它是一个矩阵,列数是theta的个数,表示每一个角度生成一列,行数是被处理的矩阵(I)对角线的长度。

R一般用于inverse radon transform,程序如下:
I1=iradon(R,theta);
imshow(I1)
iradon命令有很多参数,具体使用方法请参考