Geometry
MartaCT.Geometry.FanBeamGeometry
— MethodFanBeamGeometry([T=Float32]; <keyword arguments>) where {T}
Create a new FanBeamGeometry object with given parameters.
It is assumed that the detectors are arranged on a circle arc, not flat.
Arguments
- `nϕ: number of scan angles.
nd=nothing
: number of detectors.rows=nothing
: number of rows in the reconstructed image.cols=nothing
: number of columns in the reconstructed image.width=nothing
: alias forcols
.height=nothing
: alias forrows
.D
: focal spot to ISO distance.D′=nothing
: focal spot to detectors distance; if not specified and alsoγ
is not specified, is defined so that the total fan angle is 1 radian.γ=nothing
: total fan angle in degrees.δ=1
: detectors spacing (cell size).α=360
: scan angle in degrees.α₀=0
: scan starting angle in degrees.center=nothing
: virtual center channel, defaults to(nd-1)/2
.
MartaCT.Geometry.ParallelBeamGeometry
— MethodParallelBeamGeometry([T=Float32]; <keyword arguments>) where {T}
Construct geometry for the simulation.
Arguments
nϕ
: number of projections.nd=nothing
: number of detectors. If not specified, same asnϕ
.rows=nothing
: number of rows in the reconstructed image. If not specified, same asnd
.cols=nothing
: number of columns in the reconstructed image. If not specified, same asrows
.width=nothing
: alias forcols
.height=nothing
: alias forrows
.α=360
: scan angle in degrees.α₀=0
: starting scan angle in degrees.center=nothing
: virtual center channel, defaults to(nd-1)/2
.
MartaCT.FanBeam.fan2para
— Methodfan2para(
sinog_fan::AbstractMatrix{T},
fbg::FanBeamGeometry;
<keyword arguments>
) where {T} -> pbg, sinog_para
Convert given sinogram sinog_fan
from fan beam geometry to parallel beam projections.
It is assumed that the detectors are arranged on a circle arc, not flat.
The function returns a tuple where fbg
is the new geometry with fan beam projections parameters and sinog_fan
is the converted sinogram.
Arguments
sinog_para
: the input sinogram.pbg
: the parallel geometry parameters.background=nothing
: background value to be used, defaults to 0.interpolation
: interpolation strategy; it should be a function taking a matrix as input and returning a function of the indices to get the interpolated value. By default it is a bilinear interpolation.
See Also: para2fan
MartaCT.FanBeam.para2fan
— Methodpara2fan(
sinog_para::AbstractMatrix{T},
fbg::FanBeamGeometry;
<keyword arguments>
) where {T} -> fbg, sinog_fan
Convert given sinogram sinog_para
from parallel beam geometry to fan beam projections.
The function returns a tuple where fbg
is the new geometry with fan beam projections parameters and sinog_fan
is the converted sinogram.
Arguments
sinog_para
: the input sinogram.pbg
: the geometry parameters.D
: focal spot to ISO distance.D′=nothing
: focal spot to detectors distance; if not specified and alsoγ
is not specified, is defined so that the total fan angle is 1 radian.γ=nothing
: total fan angle in degrees.δ=1
: detectors spacing (cell size).background=nothing
: background value to be used, defaults to 0.interpolation
: interpolation strategy; it should be a function taking a matrix as input and returning a function of the indices to get the interpolated value. By default it is a bilinear interpolation.
See Also: fan2para