Slicer
5.3
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
Utility functions for resampling oriented image data. More...
#include <Libs/vtkSegmentationCore/vtkOrientedImageDataResample.h>
Public Types | |
enum | { OPERATION_MINIMUM, OPERATION_MAXIMUM, OPERATION_MASKING } |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
Static Public Member Functions | |
static bool | ApplyImageMask (vtkOrientedImageData *input, vtkOrientedImageData *mask, double fillValue, bool notMask=false) |
static bool | AreEqualWithTolerance (double a, double b) |
Compare two floating point numbers within tolerance. More... | |
static bool | CalculateEffectiveExtent (vtkOrientedImageData *image, int effectiveExtent[6], double threshold=0.0) |
Calculate effective extent of an image: the IJK extent where non-zero voxels are located. More... | |
static void | CastImageForValue (vtkOrientedImageData *image, double value) |
static bool | CopyImage (vtkOrientedImageData *imageToCopy, vtkOrientedImageData *outputImage, const int extent[6]=nullptr) |
Copy image with clipping to the specified extent. More... | |
static bool | DoesTransformMatrixContainShear (vtkMatrix4x4 *matrix) |
Determine if a transform matrix contains shear. More... | |
static bool | DoExtentsMatch (vtkOrientedImageData *image1, vtkOrientedImageData *image2) |
Determine if extents of two oriented image data objects match. More... | |
static bool | DoGeometriesMatch (vtkOrientedImageData *image1, vtkOrientedImageData *image2) |
static bool | DoGeometriesMatchIgnoreOrigin (vtkOrientedImageData *image1, vtkOrientedImageData *image2) |
static void | FillImage (vtkImageData *image, double fillValue, const int extent[6]=nullptr) |
static void | GetLabelValuesInMask (std::vector< int > &labelValues, vtkOrientedImageData *binaryLabelmap, vtkOrientedImageData *mask, const int extent[6]=nullptr, int maskThreshold=0) |
static bool | GetTransformBetweenOrientedImages (vtkOrientedImageData *image1, vtkOrientedImageData *image2, vtkTransform *image1ToImage2Transform) |
Calculate transform between two oriented image data. More... | |
static bool | IsEqual (vtkMatrix4x4 *lhs, vtkMatrix4x4 *rhs) |
static bool | IsLabelInMask (vtkOrientedImageData *binaryLabelmap, vtkOrientedImageData *mask, int extent[6]=nullptr, int maskThreshold=0) |
static bool | IsTransformLinear (vtkAbstractTransform *transform, vtkTransform *linearTransform) |
static int | IsTypeOf (const char *type) |
static bool | MergeImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *imageToAppend, vtkOrientedImageData *outputImage, int operation, const int extent[6]=nullptr, double maskThreshold=0, double fillValue=1, bool *outputModified=nullptr) |
static bool | ModifyImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *modifierImage, int operation, const int extent[6]=nullptr, double maskThreshold=0, double fillValue=1) |
static vtkOrientedImageDataResample * | New () |
static bool | PadImageToContainImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *containedImage, vtkOrientedImageData *outputImage, const int extent[6]) |
Pad an image to entirely contain another image using custom extent to contain. More... | |
static bool | PadImageToContainImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *containedImage, vtkOrientedImageData *outputImage) |
Pad an image to entirely contain another image. More... | |
static void | PrintImageInformation (vtkImageData *imageData, ostream &os, vtkIndent indent) |
Prints image information. Does not print lots of irrelevant information that default PrintSelf would print. More... | |
static bool | ResampleOrientedImageToReferenceGeometry (vtkOrientedImageData *inputImage, vtkMatrix4x4 *referenceGeometryMatrix, vtkOrientedImageData *outputImage, bool linearInterpolation=false) |
static bool | ResampleOrientedImageToReferenceOrientedImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *referenceImage, vtkOrientedImageData *outputImage, bool linearInterpolation=false, bool padImage=false, vtkAbstractTransform *inputImageTransform=nullptr, double backgroundValue=0) |
static vtkOrientedImageDataResample * | SafeDownCast (vtkObject *o) |
static void | TransformBounds (const double inputBounds[6], vtkAbstractTransform *inputToOutputTransform, double outputBounds[6]) |
static void | TransformExtent (const int inputExtent[6], vtkAbstractTransform *inputToOutputTransform, int outputExtent[6]) |
static void | TransformOrientedImage (vtkOrientedImageData *image, vtkAbstractTransform *transform, bool geometryOnly=false, bool alwaysResample=false, bool linearInterpolation=false, double backgroundColor[4]=nullptr) |
static void | TransformOrientedImageDataBounds (vtkOrientedImageData *image, vtkAbstractTransform *transform, double transformedBounds[6]) |
Transform bounds of oriented image data using a linear or non-linear transform. More... | |
Protected Member Functions | |
vtkOrientedImageDataResample () | |
~vtkOrientedImageDataResample () override | |
Utility functions for resampling oriented image data.
Definition at line 42 of file vtkOrientedImageDataResample.h.
typedef vtkObject vtkOrientedImageDataResample::Superclass |
Definition at line 46 of file vtkOrientedImageDataResample.h.
anonymous enum |
Enumerator | |
---|---|
OPERATION_MINIMUM | |
OPERATION_MAXIMUM | |
OPERATION_MASKING |
Definition at line 48 of file vtkOrientedImageDataResample.h.
|
protected |
|
overrideprotected |
|
static |
Apply mask image on an input image
input | Input image to apply the mask on |
mask | Mask to apply |
notMask | If on, the mask is passed through a boolean not before it is used to mask the image. The effect is to pass the input pixels where the mask is zero, and replace the pixels where the mask is non zero |
|
inlinestatic |
Compare two floating point numbers within tolerance.
Definition at line 140 of file vtkOrientedImageDataResample.h.
|
static |
Calculate effective extent of an image: the IJK extent where non-zero voxels are located.
|
static |
Cast the data type of the image to be able to contain the specified value
image | Image to convert |
value | Value that should be representable by the image data type |
|
static |
Copy image with clipping to the specified extent.
|
static |
Determine if a transform matrix contains shear.
|
static |
Determine if extents of two oriented image data objects match.
|
static |
Determine if geometries of two oriented image data objects match. Origin, spacing and direction are considered, extent is not.
|
static |
Determine if geometries of two oriented image data objects match. Only considers spacing and orientation, origin and extent may be different!
|
static |
Fills an image with the specified value
extent | The whole extent is filled if extent is not specified |
|
virtual |
|
static |
Get the values contained in the labelmap under the mask
binaryLabelmap | Input image to get values from |
mask | Mask image to get values under |
extent | Can be set to restrict the examined extent to a smaller region. If nullptr, the extent will be the overlapping extent between the label and mask. |
labelValues | The values found in the binary labelmap underneath the mask |
maskThreshold | Threshold value for the mask. Values above this threshold are considered to be under the mask |
|
static |
Calculate transform between two oriented image data.
|
virtual |
|
static |
Compare the values (with tolerance) between two 4x4 matrices
lhs | Left-hand side matrix to compare |
rhs | Right-hand side matrix to compare |
|
static |
Determine if there is a non-zero value in the labelmap under the mask
binaryLabelmap | Input image to get values from |
mask | Mask image to get values under |
extent | Can be set to restrict the examined extent to a smaller region. If nullptr, the extent will be the overlapping extent between the label and mask. |
maskThreshold | Threshold value for the mask. Values above this threshold are considered to be under the mask |
|
static |
Determine if a transform is linear and return it if it is. A simple downcast is not enough, as the transform may be a general transform, which can be linear if the concatenation it contains consist of all linear transforms.
transform | Input transform to assess |
linearTransform | Output transform in case transform is linear |
|
static |
|
static |
Combines the inputImage and imageToAppend into a new image by max/min operation. The extent will be the union of the two images. Extent can be specified to restrict imageToAppend's extent to a smaller region. inputImage and imageToAppend must have the same geometry, but they may have different extents.
|
static |
Modifies inputImage in-place by combining with modifierImage using max/min operation. The extent will remain unchanged. Extent can be specified to restrict modifierImage's extent to a smaller region. inputImage and modifierImage must have the same geometry (origin, spacing, directions) and scalar type, but they may have different extents.
|
static |
|
static |
Pad an image to entirely contain another image using custom extent to contain.
|
static |
Pad an image to entirely contain another image.
|
static |
Prints image information. Does not print lots of irrelevant information that default PrintSelf would print.
|
static |
Resample an oriented image data to match the geometry of a reference geometry matrix. Origin and dimensions are determined from the contents of the input image.
inputImage | Oriented image to resample |
referenceGeometryMatrix | Matrix containing the desired geometry |
outputImage | Output image |
linearInterpolation | True if linear interpolation is requested (fractional labelmap), or false for nearest neighbor (binary labelmap). Default is false. |
|
static |
Resample an oriented image data to match the geometry of a reference oriented image data
inputImage | Oriented image to resample |
referenceImage | Oriented image containing the desired geometry |
outputImage | Output image |
linearInterpolation | True if linear interpolation is requested (fractional labelmap), or false for nearest neighbor (binary labelmap). Default is false. |
padImage | If enabled then it is made sure that the input image's extent fits into the resampled reference image, so if part of the extent is transformed to be outside the reference extent, then it is padded. Disabled by default. |
inputImageTransform | If specified then inputImage will be transformed with inputImageTransform before resampled into referenceImage. |
|
static |
|
static |
Transform input bounds to determine output bounds. Use all bounding box corners, may miss part of the extent in case of non-linear transforms are used.
|
static |
Transform input extent to determine output extent of an image. Use all bounding box corners, may miss part of the extent in case of non-linear transforms are used.
|
static |
Transform an oriented image data using a transform that can be linear or non-linear. Linear: simply multiply the geometry matrix with the applied matrix, extent stays the same Non-linear: calculate new extents and change only the extents when applying deformable transform
image | Oriented image to transform |
transform | Input transform |
geometryOnly | Only the geometry of the image is changed according to the transform if this flag is turned on. This flag only has an effect if the transform is non-linear, in which case only the extent is changed. Off by default |
alwaysResample | If on, then image data will be resampled even if the applied transform is linear |
|
static |
Transform bounds of oriented image data using a linear or non-linear transform.