欢迎光临散文网 会员登陆 & 注册

拉东变换全解: CT和烂苹果 [2]

2019-09-03 20:27 作者:nyasyamorina  | 我要投稿

在开始讲拉东逆变换之前. 先来说说比较实际的快速拉东算法

上一期忘记说了= =,  拉东变换的取值范围


快速拉东变换  ----  投影

在上一篇中说到拉东变换其实和CT的一样的, 也是一个屏幕在绕着一个物体旋转, 然后得到  θ∈[0, π)  的正弦图

但是仔细想一下, 在θ相同的时候, 只要 r 取值不同就可以得到正弦图的 "一条" 了啊, 为什么要那么麻烦每次都计算一次无聊到死的积分

于是, 为了偷懒, 人们就开始不旋转屏幕, 而开始旋转ρ函数  (脑补一下病人绑在病床上, 每秒钟自转200圈的感觉)

大概思路有:   1. 确保需要投影的点都在旋转范围内(蓝色的圆)  [这就是为什么图片需要padding的原因了]     2. 把整个在圆内的点旋转θ    3. 把整个范围进行x轴积分      4. 然后就得到了 θ 为一个值时,  r 为任意值的拉东变换了,   用公式表示成下面 (不标准写法)


这个就是拉东变换的快速算法了, 然后就说说非常正规的拉东逆变换


非常正规的拉东逆变换

在讲逆变换之前先来说说正规的"变换"的写法, 不然符号非常非常容易混乱

对 f(t) 进行傅里叶变换可以写成:  F[f(t)](ω)     而傅里叶逆变换可以写成:   F^-1 [F(f)] (t)

所以拉东变换可以写成以下的形式

左边和右边的都可以哦

拉东逆变换正式开始

在Rρ(r, θ)这个结果中, 固定住角度θ, 并且对 r 进行傅里叶变换

等式右边其实就是一个拉东变换套一个傅里叶变换

在经过繁琐的化简任务后得到:  (见最下方的化简过程)

然后就会很神奇地发现这是一个原ρ密度函数的二维傅里叶变换, 即

左边的是一维傅里叶变换, 右边是二维傅里叶变换

那么做傅里叶逆变换就得到了原函数了

Rρ是进行拉东变换之后的结果, 或者是CT接收到的信号

起码我没见过有人用这个方法= =, 所以就有了一下各种快速算法


快速的拉东逆变换(不精准) -- 逆投影

参照快速拉东变换的做法,  逆变换的思路就是:   既然我们不知道内部的情况, 只知道投影之后的影子R(θ).       那么针对一个特定的角度θ,  我们有投影结果R, 那么我们假设内部的分别为线状, 恰好能生成这样的影子

这个就叫做逆投影了, 那么对每个角度θ都进行逆投影然后叠加在一起, 那么就可以得到内部图像的影像了, 用公式表示大概就是下面的东西 (乱凑的):

这里的意思就是像上图那样, 把Rρ一个角度横向拓展成一个平面

我们这里用一个实验品做做测试 :

这个是原图像
这个是拉东变换的结果
这个是反投影的结果

我们可以看到已经和原图像差不多一模一样了, 但是同时也可以看到有一片白色的光晕

这也说明如果把Rρ直接扔进逆投影变换出来的结果并不理想

这时候我们就需要把Rρ进行预处理,  我所知道的预处理有两种 (实际上肯定不止的)

第一种是把值比较高的地方, 左右压下去   (这就意味着是比较亮的边缘是比较暗的)

懒得再想用什么办法实现了

(没有实例, 但是我已经知道结果了)

这样变换出来之后白色方块周围确实已经变暗了很多, 所以这种方法是可行的

但是这个方法也有一个问题, 就是如果目标图像非常精细, 而你的信号分辨率又不够好, 这种方法反而会让图像变得更糟, 这时候就需要另一个方法了

第二种方法就是把信号的低频分量过滤掉, 保留下大部分的高频分量

操作:  把信号作傅里叶变换, 然后把频率为0的分量乘以0,  高一点的乘以一个比0大一点点的数字, 再高频率的乘以一个再大一点点的数字,  直到最高频率的乘以1或者2,  然后把乘好的这堆频率分量进行傅里叶逆变换得到信号,  然后再把信号扔进逆投影

这个是过滤低频分量的结果
这个是上面的信号做逆投影得到的

可以看到方块的棱角清晰了很多,  而且光晕也减轻了很多,  但同时方块的亮度也被减少了

其实第二种方法就是我自己使用的方法了, 在实际操作中也得到了非常好的结果, 再宣传一下自己= =

拉东变换也到此结束啦

下面是逆变换的推导过程


拉东变换全解: CT和烂苹果 [2]的评论 (共 条)

分享到微博请遵守国家法律