|
Grangeat-based 2D/3D image registration
|
A 3D texture stored for access by the CPU, structured for storing an even distribution of values over the surface of S^2, according to the HEALPix mapping. ToDo: citation here. More...
#include <SinogramClassic3D.h>
Public Types | |
| using | Base = texture_t |
| using | IntType = typename Base::IntType |
| using | FloatType = typename Base::FloatType |
| using | SizeType = typename Base::SizeType |
| using | VectorType = typename Base::VectorType |
| using | AddressModeType = typename Base::AddressModeType |
Public Member Functions | |
| SinogramClassic3D ()=default | |
| SinogramClassic3D (Base texture) | |
| Construct the texture with data. | |
| SinogramClassic3D (const SinogramClassic3D &)=default | |
| SinogramClassic3D & | operator= (const SinogramClassic3D &)=default |
| SinogramClassic3D (SinogramClassic3D &&)=default | |
| SinogramClassic3D & | operator= (SinogramClassic3D &&)=default |
| __host__ __device__ float | Sample (const VectorType &rThetaPhi) const |
Static Public Member Functions | |
| static SinogramClassic3D | FromTensor (const at::Tensor &tensor, FloatType rSpacing) |
| static SinogramClassic3D | FromCUDAHandle (int64_t textureHandle, const Vec< int64_t, 3 > &sizeRThetaPhi, FloatType rSpacing) |
Static Public Attributes | |
| static constexpr FloatType | THETA_RANGE_LOW = -.5 * M_PI |
| static constexpr FloatType | THETA_RANGE_HIGH = .5 * M_PI |
| static constexpr FloatType | PHI_RANGE_LOW = -.5 * M_PI |
| static constexpr FloatType | PHI_RANGE_HIGH = .5 * M_PI |
A 3D texture stored for access by the CPU, structured for storing an even distribution of values over the surface of S^2, according to the HEALPix mapping. ToDo: citation here.
| texture_t |
Texture sampling is done using spherical coordinates $(r, \theta, \phi)$, but only the first dimension $r$ actually corresponds to the texture coordinate in the volume data. Across two dimensions the values are stored according to a rectangular tesselation of the HEALPix spherical projection.
This object does not own the data it provides access to, it just holds a pointer to it
Both copy and move-constructable.
| using reg23::SinogramClassic3D< texture_t >::AddressModeType = typename Base::AddressModeType |
| using reg23::SinogramClassic3D< texture_t >::Base = texture_t |
| using reg23::SinogramClassic3D< texture_t >::FloatType = typename Base::FloatType |
| using reg23::SinogramClassic3D< texture_t >::IntType = typename Base::IntType |
| using reg23::SinogramClassic3D< texture_t >::SizeType = typename Base::SizeType |
| using reg23::SinogramClassic3D< texture_t >::VectorType = typename Base::VectorType |
|
default |
|
inlineexplicit |
Construct the texture with data.
| texture |
|
default |
|
default |
|
inlinestatic |
| textureHandle | |
| sizeRThetaPhi | |
| rSpacing | The spacing between each HEALPix sphere |
|
inlinestatic |
| tensor | A 3D tensor of torch.float32s containing values for evenly spacing spherical coordinate locations in $\phi$, $\theta$ and $r$. The order of the dimensions along which the coordinates should vary is $\phi$, $\theta$, $r$. |
| rSpacing | The spacing between each HEALPix sphere |
|
default |
|
default |
|
inline |
| rThetaPhi | The location at which to sample in spherical coordinates |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |