Closed Hznnn closed 4 years ago
Honestly, I don't understand your question. In ODL, Kaczmarz iterates (and any other iterative and/or optimisation based scheme) do not require information about how A (and A*) are digitised.
Regarding the projection operator A (and its transpose/adjoint A*), in ODL you typically use a helper function to construct A. This helper function needs a specification of the tomographic acquisition geometry.
How do I construct the projection operator A (and its transpose/adjoint A*) by using helper function.
For constructing the operator, look at the examples here: https://github.com/odlgroup/odl/tree/master/examples/tomo
For finding the adjoint, simply call operator.adjoint
on the constructed operator.
Are adjoint and transpose equal? In fan beam projection, how to define a geometry with projection number 720 and detector unit number 860?
Are adjoint and transpose equal?
For reconstruction, it is the adjoint you need. In most cases the adjoint coincides with the transpose.
In fan beam projection, how to define a geometry with projection number 720 and detector unit number 860?
I suggest you check the documentation: https://odlgroup.github.io/odl/generated/odl.tomo.geometry.conebeam.FanBeamGeometry.html
Quick answer is
geometry = odl.tomo.cone_beam_geometry(space, src_radius, det_radius, num_angles=720, det_shape=860)
ART Equation x^(k+1) = x^k + lambda * AT(b - A(x))/ATA
For low-dose CT reconstruction, how do I define a full-view fan-beam projection process A and AT without using kaczmarz function.