问题描述
我正在尝试使用MATLAB来实现CT(计算机断层扫描)投影算子A,我认为它经常也被称为系统矩阵".
I am trying to use MATLAB to implement a CT (computed tomography) projection operator, A, which I think is also referred as "system matrix" often times.
基本上,对于N x N图像M,可以通过将项目算子与图像相乘来获得投影数据P:
Basically, for a N x N image M, the projection data, P, can be obtained by multiplication of the project operator to the image:
P = AM
和反投影过程可以通过将投影算子的(共轭)转置乘以投影数据来执行:
and the backprojection procedure can be performed by multiplying the (conjugate) transpose of the projection operator to the projection data:
M = A'P
任何人都对如何实现矩阵A有任何想法/示例/示例代码(例如:Radon变换)?我真的很想从一个较小的矩阵开始,比如说8 x 8或16 x 16.
Anyone has any idea/example/sample code on how to implement matrix A (for example: Radon transform)? I would really like to start with a small size of matrix, say 8 x 8, or 16 x 16, if possible.
我的问题确实是:如何实现投影算子,以便通过将算子与图像相乘,可以得到投影,并通过将算子的(共轭)转置与投影相乘,可以得到投影算子.原始图像返回.
My question really is: how to implement the projection operator, such that by multiplying the operator with an image, I can get the projections, and by multiplying the (conjugate) transpose of the operator with the projections, I can get the original image back.
特别是,我想实现距离驱动的投影仪,在这种情况下,光束轨迹(平行,扇形等)将无关紧要.非常简单的示例(首选MATLAB)对我来说是最好的开始.
推荐答案
据我所知,还没有免费的可实现距离驱动的投影机/背投投影机的实现(已获得专利).但是,您可以自己编写代码而没有太多困难.
As far as I'm aware, there are no freely available implementations of the distance-driven projector/backprojector (it is patented). You can, however, code it yourself without too much difficulty.
首先阅读论文并了解投影机的功能.您只需要几个关键部分:
Start by reading the papers and understanding what the projector is doing. There are only a few key parts that you need:
- 将像素边界投影到轴上.
- 将检测器边界投影到轴上.
- 重叠内核.
前两个是简单的几何.在论文中对重叠内核进行了详细的介绍(并且大多数情况下还使用了伪代码).
The first two are simple geometry. The overlap kernel is described in good detail (and mostly usable pseudocode) in the papers.
请注意,您将不会获得进行投影的实际矩阵.该系统对于除最小的示例以外的所有示例而言都太大了.相反,您应该编写一个函数来实现与距离驱动的投影相对应的线性运算符.
Note that you won't wind up with an actual matrix that does the projection. The system would be too large for all but the tiniest examples. Instead, you should write a function that implements the linear operator corresponding to distance-driven projection.
这篇关于CT投影(距离驱动)运算符的实现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!