open_iA 2025.6
Loading...
Searching...
No Matches
iAToolsVTK.h File Reference
#include "iabase_export.h"
#include "iAVec3.h"
#include <vtkSmartPointer.h>
#include <QMap>
#include <QStringList>
#include <QVariant>

Classes

class  iAByteOrder
 Byte Order handling - mainly for simplifying exporting string constants for the two possible values. More...
 

Macros

#define FOR_VTKIMG_PIXELS(img, x, y, z)
 
#define FOR_VTKIMG_PIXELS_IDX(img, idx)
 

Enumerations

enum  iACameraPosition {
  PX , MX , PY , MY ,
  PZ , MZ , Iso
}
 Predefined camera positions; view along every positive (P) and negative (M) axis (x, y, z), as well as an isometric perspective. More...
 

Functions

iAbase_API void addImages (vtkSmartPointer< vtkImageData > imgDst, vtkSmartPointer< vtkImageData > const imgToAdd, iAProgress *p=nullptr)
 add values of one image to the values of another image
 
iAbase_API void adjustIndexAndSizeToImage (QVariantMap &params, vtkImageData *img)
 Given index and size parameters in a QVariantMap, adjust these parameters so that they specify a region of interest that lies completely within the given image.
 
iAbase_API vtkSmartPointer< vtkImageData > allocateImage (int vtkType, int const dimensions[3], double const spacing[3])
 Create a VTK image with the given properties.
 
iAbase_API vtkSmartPointer< vtkImageData > allocateImage (int vtkType, int const dimensions[3], double const spacing[3], int numComponents)
 Create a VTK image with the given properties.
 
iAbase_API vtkSmartPointer< vtkImageData > allocateImage (vtkSmartPointer< vtkImageData > img)
 Create a VTK image that has the same properties (type, size, spacing) as the given image.
 
iAbase_API void convertLUTToTF (vtkSmartPointer< vtkLookupTable > src, vtkSmartPointer< vtkColorTransferFunction > ctf, vtkSmartPointer< vtkPiecewiseFunction > otf, double alphaOverride=-1)
 
iAbase_API void convertTFToLUT (vtkSmartPointer< vtkLookupTable > dst, vtkSmartPointer< vtkScalarsToColors > ctf, vtkSmartPointer< vtkPiecewiseFunction > otf, int numCols, double const *lutRange=nullptr, bool reverse=false)
 
iAbase_API void copyCameraParams (vtkCamera *dst, vtkCamera *src)
 
iAbase_API void fillImage (vtkSmartPointer< vtkImageData > img, double const value, iAProgress *p=nullptr)
 fill all pixels in the given image with the given value
 
iAbase_API bool isFlat (vtkImageData *img)
 Checks whether an image is flat.
 
iAbase_API bool isVtkIntegerImage (vtkImageData *img)
 Check whether the given image holds integer numbers.
 
iAbase_API int mapReadableDataTypeToVTKType (QString const &dataTypeName)
 Maps a given data type string to the corresponding VTK type identifier.
 
iAbase_API QString mapVTKTypeToReadableDataType (int vtkType)
 Maps a given VTK type to the corresponding readable data type.
 
iAbase_API size_t mapVTKTypeToSize (int vtkType)
 Returns the size (in bytes) of the given VTK type.
 
iAbase_API iAVec3i mapWorldCoordsToIndex (vtkImageData *img, double const *worldCoord)
 Translate from world coordinates to voxel indices for the given image.
 
iAbase_API void mapWorldToVoxelCoords (vtkImageData *img, double const *worldCoord, double *voxelCoord)
 Translate from world coordinates to voxel coordinates for the given image.
 
iAbase_API void multiplyImage (vtkSmartPointer< vtkImageData > imgDst, double value, iAProgress *p=nullptr)
 multiply all values of an image with the given value
 
iAbase_API QStringList const & readableDataTypeList (bool withLongLongTypes)
 Returns a human-readable list of available data types for a single pixel/voxel.
 
iAbase_API vtkSmartPointer< vtkImageData > readImage (QString const &filename)
 Read an image from disk into a VTK image.
 
iAbase_API void setCamPosition (vtkCamera *cam, iACameraPosition mode)
 Set given camera position to one of the predefined positions available in iACameraPosition.
 
iAbase_API void storeImage (vtkSmartPointer< vtkImageData > img, QString const &filename, bool useCompression=true, iAProgress const *progress=nullptr)
 Stores an image on disk (typically in .mhd format).
 
iAbase_API void writeSingleSliceImage (QString const &filename, vtkImageData *img, int compressionLevel=5)
 Write a single slice image to a common 2D picture format.
 

Macro Definition Documentation

◆ FOR_VTKIMG_PIXELS

#define FOR_VTKIMG_PIXELS ( img,
x,
y,
z )
Value:
for (int z = 0; z < img->GetDimensions()[2]; ++z) \
for (int y = 0; y < img->GetDimensions()[1]; ++y) \
for (int x = 0; x < img->GetDimensions()[0]; ++x)
@ z
Definition iAvtkInteractStyleActor.h:22
@ x
Definition iAvtkInteractStyleActor.h:20
@ y
Definition iAvtkInteractStyleActor.h:21

◆ FOR_VTKIMG_PIXELS_IDX

#define FOR_VTKIMG_PIXELS_IDX ( img,
idx )
Value:
for (size_t idx = 0; idx < img->GetDimensions()[0]*img->GetDimensions()[1]*img->GetDimensions()[2]; ++idx)

Enumeration Type Documentation

◆ iACameraPosition

Predefined camera positions; view along every positive (P) and negative (M) axis (x, y, z), as well as an isometric perspective.

Enumerator
PX 
MX 
PY 
MY 
PZ 
MZ 
Iso 

Function Documentation

◆ addImages()

iAbase_API void addImages ( vtkSmartPointer< vtkImageData > imgDst,
vtkSmartPointer< vtkImageData > const imgToAdd,
iAProgress * p = nullptr )

add values of one image to the values of another image

Parameters
imgDstdestination image (will be modified)
imgToAddimage with values to be added to imgDst (will not be modified)
pif given, used to report progress

◆ adjustIndexAndSizeToImage()

iAbase_API void adjustIndexAndSizeToImage ( QVariantMap & params,
vtkImageData * img )

Given index and size parameters in a QVariantMap, adjust these parameters so that they specify a region of interest that lies completely within the given image.

Parameters
paramsmap of parameters (which should contain values for "Index" and "Size", as iAValueType::Vector3i, i.e. QVector<int>)
imgthe image whose size determines the clamping of parameters

◆ allocateImage() [1/3]

iAbase_API vtkSmartPointer< vtkImageData > allocateImage ( int vtkType,
int const dimensions[3],
double const spacing[3] )

Create a VTK image with the given properties.

Parameters
vtkTypethe VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) for the voxel data type to use in the new image
dimensionsthe size of the image in the 3 dimensions.
spacingthe spacing (distance of voxels) in each of the 3 dimension directions.
Returns
an image with a single component and the type, size and spacing as the given parameters, with allocated but uninitialized pixel data.

◆ allocateImage() [2/3]

iAbase_API vtkSmartPointer< vtkImageData > allocateImage ( int vtkType,
int const dimensions[3],
double const spacing[3],
int numComponents )

Create a VTK image with the given properties.

Parameters
vtkTypethe VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) for the voxel data type to use in the new image
dimensionsthe size of the image in the 3 dimensions.
spacingthe spacing (distance of voxels) in each of the 3 dimension directions.
numComponentsthe number of components in each voxel.
Returns
an image with the type, size, spacing and number of components as the given parameters, with allocated but uninitialized pixel data.

◆ allocateImage() [3/3]

iAbase_API vtkSmartPointer< vtkImageData > allocateImage ( vtkSmartPointer< vtkImageData > img)

Create a VTK image that has the same properties (type, size, spacing) as the given image.

Parameters
imgimage whose type, size and spacing will be used to create the result image; its data will not be copied over to the new image
Returns
an image that has the same type, size and spacing as the image given as parameter, with allocated but uninitialized pixel data.

◆ convertLUTToTF()

iAbase_API void convertLUTToTF ( vtkSmartPointer< vtkLookupTable > src,
vtkSmartPointer< vtkColorTransferFunction > ctf,
vtkSmartPointer< vtkPiecewiseFunction > otf,
double alphaOverride = -1 )

◆ convertTFToLUT()

iAbase_API void convertTFToLUT ( vtkSmartPointer< vtkLookupTable > dst,
vtkSmartPointer< vtkScalarsToColors > ctf,
vtkSmartPointer< vtkPiecewiseFunction > otf,
int numCols,
double const * lutRange = nullptr,
bool reverse = false )

◆ copyCameraParams()

iAbase_API void copyCameraParams ( vtkCamera * dst,
vtkCamera * src )

◆ fillImage()

iAbase_API void fillImage ( vtkSmartPointer< vtkImageData > img,
double const value,
iAProgress * p = nullptr )

fill all pixels in the given image with the given value

Parameters
imgimage to be filled
valueused to fill each voxel in given image
pif given, used to report progress

◆ isFlat()

iAbase_API bool isFlat ( vtkImageData * img)

Checks whether an image is flat.

Parameters
imga VTK image
Returns
whether the image is flat in any direction, i.e. whether one side is only 1 pixel wide.

◆ isVtkIntegerImage()

iAbase_API bool isVtkIntegerImage ( vtkImageData * img)

Check whether the given image holds integer numbers.

Parameters
imga VTK image
Returns
true if the values in the given VTK image are integer numbers, false if it holds floating point numbers

◆ mapReadableDataTypeToVTKType()

iAbase_API int mapReadableDataTypeToVTKType ( QString const & dataTypeName)

Maps a given data type string to the corresponding VTK type identifier.

Reverse of mapVTKTypeToReadableDataType

Parameters
dataTypeNamean entry from the list of readable data types (see readableDataTypeList())
Returns
the VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) for the given readable data type name, or -1 if the given name is not on the list

◆ mapVTKTypeToReadableDataType()

iAbase_API QString mapVTKTypeToReadableDataType ( int vtkType)

Maps a given VTK type to the corresponding readable data type.

Reverse of mapReadableDataTypeToVTKType

Parameters
vtkTypethe VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...)
Returns
the name (in the list as returned by readableDataTypeList()) of the given VTK type identifier, or -1 if the given VTK type identifier is unknown

◆ mapVTKTypeToSize()

iAbase_API size_t mapVTKTypeToSize ( int vtkType)

Returns the size (in bytes) of the given VTK type.

Parameters
vtkTypea VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...)
Returns
the size in bytes of the given type (VTK_SIGNED_CHAR/VTK_UNSIGNED_CHAR -> 1, ...), or 0 if it's an unknown type

◆ mapWorldCoordsToIndex()

iAbase_API iAVec3i mapWorldCoordsToIndex ( vtkImageData * img,
double const * worldCoord )

Translate from world coordinates to voxel indices for the given image.

Parameters
imga VTK image
worldCoordworld (=scene) coordinates (3 components: x, y, z)
Returns
voxel indices, the coordinates in img for the given world coordinates (clamped)

◆ mapWorldToVoxelCoords()

iAbase_API void mapWorldToVoxelCoords ( vtkImageData * img,
double const * worldCoord,
double * voxelCoord )

Translate from world coordinates to voxel coordinates for the given image.

Parameters
imga VTK image
worldCoordworld (=scene) coordinates (3 components: x, y, z)
voxelCoordplace for storing 3 components of voxel coordinates in img for the given world coordinates (clamped)

◆ multiplyImage()

iAbase_API void multiplyImage ( vtkSmartPointer< vtkImageData > imgDst,
double value,
iAProgress * p = nullptr )

multiply all values of an image with the given value

Parameters
imgDstthe image to be multiplied
valuemultiplier used for each voxel
pif given, used to report progress

◆ readableDataTypeList()

iAbase_API QStringList const & readableDataTypeList ( bool withLongLongTypes)

Returns a human-readable list of available data types for a single pixel/voxel.

Parameters
withLongLongTypeswhether to include 64 bit signed/unsigned integer types

◆ readImage()

iAbase_API vtkSmartPointer< vtkImageData > readImage ( QString const & filename)

Read an image from disk into a VTK image.

Parameters
filenamethe name of the file to read.

◆ setCamPosition()

iAbase_API void setCamPosition ( vtkCamera * cam,
iACameraPosition mode )

Set given camera position to one of the predefined positions available in iACameraPosition.

◆ storeImage()

iAbase_API void storeImage ( vtkSmartPointer< vtkImageData > img,
QString const & filename,
bool useCompression = true,
iAProgress const * progress = nullptr )

Stores an image on disk (typically in .mhd format).

Parameters
imgthe image to store
filenamethe name of the file to write to.
useCompressionwhether the file should be compressed (.zraw) or not (.raw) in case we are storing .mhd files
progressan optional progress link; if != null, the file writer will trigger its progress signal

◆ writeSingleSliceImage()

iAbase_API void writeSingleSliceImage ( QString const & filename,
vtkImageData * img,
int compressionLevel = 5 )

Write a single slice image to a common 2D picture format.

Parameters
filenamethe name of the file to write to; this is expected to have an extension of tif, png, jpg or bmp; the type of the file written will be chosen according to this extension
imgthe image to write; this already needs to be a 2D image (i.e., size in Z dimension = 1)
compressionLevelif output is in .png format, the compression level (0.. no compression, 9.. highest compression)