|
Grangeat-based 2D/3D image registration
|
#include <Radon2D.h>
Classes | |
| struct | CommonData |
Public Types | |
| using | IntType = typename texture_t::IntType |
| using | FloatType = typename texture_t::FloatType |
| using | SizeType = typename texture_t::SizeType |
| using | VectorType = typename texture_t::VectorType |
| using | AddressModeType = typename texture_t::AddressModeType |
Static Public Member Functions | |
| static __host__ CommonData | Common (const at::Tensor &image, const at::Tensor &imageSpacing, const at::Tensor &phiValues, const at::Tensor &rValues, int64_t samplesPerLine, at::DeviceType device) |
| __host__ static __device__ Linear< VectorType > | GetMappingIToOffset (FloatType lineLength, int64_t samplesPerLine) |
| __host__ static __device__ Linear< VectorType > | GetMappingIndexToTexCoord (const texture_t &textureIn, FloatType phi, FloatType r, const Linear< VectorType > &mappingIToOffset) |
| __host__ static __device__ VectorType | GetDTexCoordDR (const texture_t &textureIn, FloatType phi, FloatType r) |
| __host__ static __device__ float | IntegrateLooped (const texture_t &texture, const Linear< VectorType > &mappingIndexToTexCoord, int64_t samplesPerLine) |
| __host__ static __device__ float | DIntegrateLoopedDMappingParameter (const texture_t &texture, const Linear< VectorType > &mappingIndexToTexCoord, const VectorType &dTexCoordDMappingParameter, int64_t samplesPerLine) |
| texture_t | Type of the texture object that input data will be converted to for sampling. |
This struct is used as a namespace for code that is shared between different implementations of Radon2D_... and DRadon2DDR_... functions
| using reg23::Radon2D< texture_t >::AddressModeType = typename texture_t::AddressModeType |
| using reg23::Radon2D< texture_t >::FloatType = typename texture_t::FloatType |
| using reg23::Radon2D< texture_t >::IntType = typename texture_t::IntType |
| using reg23::Radon2D< texture_t >::SizeType = typename texture_t::SizeType |
| using reg23::Radon2D< texture_t >::VectorType = typename texture_t::VectorType |
|
inlinestatic |
|
inlinestatic |
| texture | The texture object to sample |
| mappingIndexToTexCoord | The mapping from integration iteration index to 2D cartesian texture coordinate (this determines the integration line) |
| dTexCoordDMappingParameter | The derivative of the sampling locations with respect to some parameter. This is assumed to be constant along the line. |
| samplesPerLine | The number of samples to make |
IntegrateLooped, with respect to some parameter (according to the value of dTexCoordDMappingParameter).
|
inlinestatic |
| textureIn | The texture object which is being accessed |
| phi | The phi polar coordinate at which the result should be evaluated |
| r | The r polar coordinate at which the result should be evaluated |
The polar coordinates should be defined according to the convention stated in reg23/Conventions.md, however the parameter with respect to which this is evaluating the derivative is the unsigned version of r, i.e. the unsigned distance between the orign and the line.
|
inlinestatic |
| textureIn | The texture object which the returned mapping will be used to access. |
| phi | The phi polar coordinate of the plane this mapping should correspond to |
| r | The r polar coordinate of the plane this mapping should correspond to |
| mappingIToOffset | The mapping from integration iteration index to untransformed sampling offset |
Linear mapping from integration iteration index to 2D cartesian texture coordinate sampling location, according to the given texture object and integration line (parameterised in polar coordinates)The polar coordinates should be defined according to the convention stated in reg23/Conventions.md
|
inlinestatic |
| lineLength | |
| samplesPerLine |
Linear mapping from integration iteration index to world sample distance, according to the given line length and sample countThis is used as part of the approximation of a line integral: for each sample taken to contribute to the line integral, the returned functor maps the sample index to the (untransformed) world offset.
The mapping is generated for 2-vectors, as it will ultimately be applied to 2-vectors.
|
inlinestatic |
| texture | The texture object to sample |
| mappingIndexToTexCoord | The mapping from integration iteration index to 2D cartesian texture coordinate (this determines the integration line) |
| samplesPerLine | The number of samples to make |
samplesPerLine samples are taken evenly spaced along the line.mappingIndexToTexCoord can be determined using GetMappingIndexToTexCoord (here the line to be integrated is defined in polar coordinates). This function is separate as it is often more efficient to precalculate the value of mappingIndexToTexCoord.