关于matlab中Radon变换的几个问题

憨人 2008-05-15 08:37:50
小弟在做关于图形重建的毕设
研究Matlab中自带函数Radon()和iRadon()时发现了几个问题不是很理解在此请教了

以下出自iRadon.m
................
.................
xax = (1:N)-ceil(N/2);
x = repmat(xax, N, 1); % x coordinates, the y coordinates are rot90(x)
y = rot90(x);
...............
................
for i=1:length(theta)
proj = p(:,i);
t = round(x*costheta(i) + y*sintheta(i));
img = img + proj(t+ctrIdx);
end
matlab 自带的iradon函数里的片断

其中x为一矩阵 y是x反转90度
那么t = round(x*数字 + y*数字)
这句话的含义是什么啊?
最后t的结果是x*数字 + y*数字这个矩阵对各个值再求整?

还有最后一个proj(t+ctrIdx)
proj应该是一个向量
那么括号里的是索引?
t已经是矩阵了,那么这个索引的含义是什么啊?
可最后运行结果却是一个矩阵

还有一个问题就是
iRadon()这个函数用到了FFT(p)对投影数据进行快速傅里叶变换
既然是图像应该使用FFT2才对 为什么这里是这么使用的呢?
并且FFT是一维复立叶变换才对这里却可以作用在矩阵上 所得的数据与用FFT2作出的还不一样
最后得出的结论让我彻底糊涂 以至进入崩溃状态
大虾救命啊~~~

小人要用硬件来实现iradon的功能 所以不能用matlab
急切盼望高手解答到底怎么理解
...全文
3457 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycl_1988 2011-12-18
  • 打赏
  • 举报
回复
你好 。。radon变换针对一个矩阵来说是如何求的?
仙人球yy 2011-02-08
  • 打赏
  • 举报
回复
今天刚看了一下iradon的具体代码实现,发现算法的思路是用每一个角度的投影对图像做一个逼近
也就是img=img+proj;所代表的内容,这种逼近的方式重建出来的效果应该十分不好,我也刚接触图像重建的内容,不知道有什么样更好的重建算法,希望高手指点
憨人 2008-05-16
  • 打赏
  • 举报
回复
本问题结束
自己已经搞定

第一个
t = round(x*数字 + y*数字)
这句话的含义是对矩阵的各个项取整

还有最后一个C=A(B)
其中A为列向量
B为矩阵
则所得C是一个与B相同维数大小的矩阵
同时每个值为以B的相应位置数字为索引的A中数据
试了半天 应该是这么回事

还有就是FFT 如果作用在矩阵上面 则是对每个列向量作一维复立叶变换
再把所得结果变成一个矩阵

4,499

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧