NifTK
16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
|
Class to project a 3D image into 2D. More...
Classes | |
struct | ImageProjectorThreadStruct |
Public Member Functions | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (InputImageDimension, unsigned int, 3) | |
itkStaticConstMacro (OutputImageDimension, unsigned int, 2) | |
virtual void | GenerateOutputInformation (void) |
virtual void | GenerateInputRequestedRegion (void) |
virtual void | EnlargeOutputRequestedRegion (DataObject *output) |
void | SetProjectedImageSize (OutputImageSizeType &outImageSize) |
Set the size in pixels of the output projected image. More... | |
void | SetProjectedImageSpacing (OutputImageSpacingType &outImageSpacing) |
Set the resolution in mm of the output projected image. More... | |
void | SetProjectedImageOrigin (OutputImagePointType &outImageOrigin) |
Set the origin of the output projected image. More... | |
void | SetRayIntegrationThreshold (double threshold) |
Set the ray integration threshold. More... | |
void | SetSingleThreadedExecution (void) |
For debugging purposes, set single threaded execution. More... | |
Public Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > > | |
itkStaticConstMacro (InputImageDimension, unsigned int, Image< IntensityType, 3 >::ImageDimension) | |
itkStaticConstMacro (OutputImageDimension, unsigned int, Image< IntensityType, 2 >::ImageDimension) | |
virtual void | SetAffineTransform (EulerAffineTransformType *_arg) |
Set the affine transformation. More... | |
virtual EulerAffineTransformType * | GetAffineTransform () |
Get the affine transformation. More... | |
virtual void | SetPerspectiveTransform (PerspectiveProjectionTransformType *_arg) |
Set the perspective transformation. More... | |
virtual PerspectiveProjectionTransformType * | GetPerspectiveTransform () |
Get the perspective transformation. More... | |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > > | |
static Pointer | New () |
Protected Member Functions | |
ImageProjector2D3D () | |
virtual | ~ImageProjector2D3D (void) |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | BeforeThreadedGenerateData (void) |
virtual void | AfterThreadedGenerateData (void) |
void | GenerateData () |
void | ThreadedGenerateData (const InputImageRegionType &inputRegionForThread, ThreadIdType threadId) |
int | SplitRequestedRegion (int i, int num, InputImageRegionType &splitRegion) |
Protected Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > > | |
ImageProjectionBaseClass2D3D () | |
virtual | ~ImageProjectionBaseClass2D3D () |
void | PrintSelf (std::ostream &os, Indent indent) const |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_TYPE | ImageProjectorThreaderCallback (void *arg) |
Protected Attributes | |
OutputImageSizeType | m_OutputImageSize |
The size of the output projected image. More... | |
OutputImageSpacingType | m_OutputImageSpacing |
The resolution of the output projected image. More... | |
OutputImagePointType | m_OutputImageOrigin |
The origin of the output projected image. More... | |
double | m_Threshold |
The threshold above which voxels along the ray path are integrated. More... | |
bool | m_FlagMultiThreadedExecution |
Flag to turn multithreading on or off. More... | |
Protected Attributes inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > > | |
EulerAffineTransformType::Pointer | m_AffineTransform |
The affine transform. More... | |
PerspectiveProjectionTransformType::Pointer | m_PerspectiveTransform |
Class to project a 3D image into 2D.
typedef SmartPointer<const Self> itk::ImageProjector2D3D< IntensityType >::ConstPointer |
typedef InputImageType::ConstPointer itk::ImageProjector2D3D< IntensityType >::InputImageConstPointer |
typedef InputImageType::IndexType itk::ImageProjector2D3D< IntensityType >::InputImageIndexType |
typedef InputImageType::PixelType itk::ImageProjector2D3D< IntensityType >::InputImagePixelType |
typedef InputImageType::Pointer itk::ImageProjector2D3D< IntensityType >::InputImagePointer |
typedef InputImageType::PointType itk::ImageProjector2D3D< IntensityType >::InputImagePointType |
typedef InputImageType::RegionType itk::ImageProjector2D3D< IntensityType >::InputImageRegionType |
typedef InputImageType::SizeType itk::ImageProjector2D3D< IntensityType >::InputImageSizeType |
typedef InputImageType::SpacingType itk::ImageProjector2D3D< IntensityType >::InputImageSpacingType |
typedef Image<IntensityType, 3> itk::ImageProjector2D3D< IntensityType >::InputImageType |
Some convenient typedefs.
typedef OutputImageType::IndexType itk::ImageProjector2D3D< IntensityType >::OutputImageIndexType |
typedef OutputImageType::PixelType itk::ImageProjector2D3D< IntensityType >::OutputImagePixelType |
typedef OutputImageType::Pointer itk::ImageProjector2D3D< IntensityType >::OutputImagePointer |
typedef OutputImageType::PointType itk::ImageProjector2D3D< IntensityType >::OutputImagePointType |
typedef OutputImageType::RegionType itk::ImageProjector2D3D< IntensityType >::OutputImageRegionType |
typedef OutputImageType::SizeType itk::ImageProjector2D3D< IntensityType >::OutputImageSizeType |
typedef OutputImageType::SpacingType itk::ImageProjector2D3D< IntensityType >::OutputImageSpacingType |
typedef Image<IntensityType, 2> itk::ImageProjector2D3D< IntensityType >::OutputImageType |
typedef SmartPointer<Self> itk::ImageProjector2D3D< IntensityType >::Pointer |
typedef ImageProjector2D3D itk::ImageProjector2D3D< IntensityType >::Self |
Standard class typedefs.
typedef ImageProjectionBaseClass2D3D<Image< IntensityType, 3>, Image< IntensityType, 2> > itk::ImageProjector2D3D< IntensityType >::Superclass |
|
protected |
|
inlineprotectedvirtual |
|
protectedvirtual |
If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.
|
protectedvirtual |
If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.
|
virtual |
|
protected |
Single threaded execution, for debugging purposes ( call SetSingleThreadedExecution() )
|
virtual |
Rather than calculate the input requested region for a particular projection (which might take longer than the actual projection), we simply set the input requested region to the entire 3D input image region. Therefore needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
|
virtual |
ImageProjector2D3D produces a 2D ouput image which is a different resolution and with a different pixel spacing than its 3D input image (obviously). As such, ImageProjector2D3D needs to provide an implementation for GenerateOutputInformation() in order to inform the pipeline execution model. The original documentation of this method is below.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >.
|
staticprotected |
Static function used as a "callback" by the MultiThreader. The threading library will call this routine for each thread, which will delegate the control to ThreadedGenerateData().
itk::ImageProjector2D3D< IntensityType >::itkStaticConstMacro | ( | InputImageDimension | , |
unsigned | int, | ||
3 | |||
) |
ImageDimension enumeration
itk::ImageProjector2D3D< IntensityType >::itkStaticConstMacro | ( | OutputImageDimension | , |
unsigned | int, | ||
2 | |||
) |
|
static |
Method for creation through the object factory.
|
protected |
|
inline |
Set the origin of the output projected image.
|
inline |
Set the size in pixels of the output projected image.
|
inline |
Set the resolution in mm of the output projected image.
|
inline |
Set the ray integration threshold.
|
inline |
For debugging purposes, set single threaded execution.
|
protected |
Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the input RequestedRegion, i.e. return value is less than or equal to "num".
|
protected |
ImageProjector2D3D can be implemented as a multithreaded filter. Therefore, this implementation provides a ThreadedGenerateData() routine which is called for each processing thread. The output image data is allocated automatically by the superclass prior to calling ThreadedGenerateData(). ThreadedGenerateData can only write to the portion of the output image specified by the parameter "outputRegionForThread"
|
protected |
Flag to turn multithreading on or off.
|
protected |
The origin of the output projected image.
|
protected |
The size of the output projected image.
|
protected |
The resolution of the output projected image.
|
protected |
The threshold above which voxels along the ray path are integrated.