|
open_iA 2023.02
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
|
#include "iAToolsVTK.h"#include "iAConnector.h"#include "iAFileUtils.h"#include "iAITKIO.h"#include "iALog.h"#include "iAMathUtility.h"#include "iAProgress.h"#include "iATypedCallHelper.h"#include "iAValueTypeVectorHelpers.h"#include "iAVtkDraw.h"#include <vtkBMPWriter.h>#include <vtkCamera.h>#include <vtkImageData.h>#include <vtkImageWriter.h>#include <vtkJPEGWriter.h>#include <vtkObjectFactory.h>#include <vtkPNGWriter.h>#include <vtkTIFFWriter.h>#include <vtkSmartVolumeMapper.h>#include <vtkColorTransferFunction.h>#include <vtkImageReader.h>#include <vtkLookupTable.h>#include <vtkPiecewiseFunction.h>#include <QFileInfo>#include <QRegularExpression>#include <QStringList>Functions | |
| void | addImages (vtkSmartPointer< vtkImageData > imgDst, vtkSmartPointer< vtkImageData > const imgToAdd, iAProgress *p) |
| add values of one image to the values of another image | |
| void | adjustIndexAndSizeToImage (QVariantMap ¶ms, 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. | |
| vtkSmartPointer< vtkImageData > | allocateImage (int vtkType, int const dimensions[3], double const spacing[3]) |
| Create a VTK image with the given properties. | |
| vtkSmartPointer< vtkImageData > | allocateImage (int vtkType, int const dimensions[3], double const spacing[3], int numComponents) |
| Create a VTK image with the given properties. | |
| vtkSmartPointer< vtkImageData > | allocateImage (vtkSmartPointer< vtkImageData > img) |
| Create a VTK image that has the same properties (type, size, spacing) as the given image. | |
| void | convertLUTToTF (vtkSmartPointer< vtkLookupTable > lut, vtkSmartPointer< vtkColorTransferFunction > ctf, vtkSmartPointer< vtkPiecewiseFunction > otf, double alphaOverride) |
| void | convertTFToLUT (vtkSmartPointer< vtkLookupTable > lut, vtkSmartPointer< vtkScalarsToColors > ctf, vtkSmartPointer< vtkPiecewiseFunction > otf, int numCols, double const *lutRange, bool reverse) |
| void | copyCameraParams (vtkCamera *dstCam, vtkCamera *srcCam) |
| void | fillImage (vtkSmartPointer< vtkImageData > img, double const value, iAProgress *p) |
| fill all pixels in the given image with the given value | |
| bool | isFlat (vtkImageData *img) |
| Checks whether an image is flat. | |
| bool | isVtkIntegerImage (vtkImageData *img) |
| Check whether the given image holds integer numbers. | |
| int | mapReadableDataTypeToVTKType (QString const &dataTypeName) |
| Maps a given data type string to the corresponding VTK type identifier. | |
| int | mapRenderModeToEnum (QString const &modeName) |
| map the given render mode name to the respective enum in the render mode map | |
| QString | mapVTKTypeToReadableDataType (int vtkType) |
| Maps a given VTK type to the corresponding readable data type. | |
| size_t | mapVTKTypeToSize (int vtkType) |
| Returns the size (in bytes) of the given VTK type. | |
| iAVec3i | mapWorldCoordsToIndex (vtkImageData *img, double const *worldCoord) |
| Translate from world coordinates to voxel indices for the given image. | |
| 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 > img, double value, iAProgress *p) |
| multiply all values of an image with the given value | |
| QStringList const & | readableDataTypeList (bool withLongLongTypes) |
| Returns a human-readable list of available data types for a single pixel/voxel. | |
| void | readImage (QString const &filename, bool releaseFlag, vtkSmartPointer< vtkImageData > &ptr) |
| Read an image from disk into a VTK image. | |
| QMap< int, QString > const & | RenderModeMap () |
| a map of available render modes in vtkSmartVolumeMapper to their names | |
| void | setCamPosition (vtkCamera *cam, iACameraPosition pos) |
| Set given camera position to one of the predefined positions available in iACameraPosition. | |
| void | storeImage (vtkSmartPointer< vtkImageData > img, QString const &filename, bool useCompression, iAProgress const *progress) |
| Stores an image on disk (typically in .mhd format). | |
| vtkStandardNewMacro (iAvtkImageData) | |
| void | writeSingleSliceImage (QString const &filename, vtkImageData *img) |
| Write a single slice image to a common 2D picture format. | |
| void addImages | ( | vtkSmartPointer< vtkImageData > | imgDst, |
| vtkSmartPointer< vtkImageData > const | imgToAdd, | ||
| iAProgress * | p = nullptr |
||
| ) |
add values of one image to the values of another image
| imgDst | destination image (will be modified) |
| imgToAdd | image with values to be added to imgDst (will not be modified) |
| p | if given, used to report progress |
| 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.
| params | map of parameters (which should contain values for "Index" and "Size", as iAValueType::Vector3i, i.e. QVector<int>) |
| img | the image whose size determines the clamping of parameters |
| vtkSmartPointer< vtkImageData > allocateImage | ( | int | vtkType, |
| int const | dimensions[3], | ||
| double const | spacing[3] | ||
| ) |
Create a VTK image with the given properties.
| vtkType | the VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) for the voxel data type to use in the new image |
| dimensions | the size of the image in the 3 dimensions. |
| spacing | the spacing (distance of voxels) in each of the 3 dimension directions. |
| vtkSmartPointer< vtkImageData > allocateImage | ( | int | vtkType, |
| int const | dimensions[3], | ||
| double const | spacing[3], | ||
| int | numComponents | ||
| ) |
Create a VTK image with the given properties.
| vtkType | the VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) for the voxel data type to use in the new image |
| dimensions | the size of the image in the 3 dimensions. |
| spacing | the spacing (distance of voxels) in each of the 3 dimension directions. |
| numComponents | the number of components in each voxel. |
| vtkSmartPointer< vtkImageData > allocateImage | ( | vtkSmartPointer< vtkImageData > | img | ) |
Create a VTK image that has the same properties (type, size, spacing) as the given image.
| img | image whose type, size and spacing will be used to create the result image; its data will not be copied over to the new image |
| void convertLUTToTF | ( | vtkSmartPointer< vtkLookupTable > | lut, |
| vtkSmartPointer< vtkColorTransferFunction > | ctf, | ||
| vtkSmartPointer< vtkPiecewiseFunction > | otf, | ||
| double | alphaOverride | ||
| ) |
| void convertTFToLUT | ( | vtkSmartPointer< vtkLookupTable > | lut, |
| vtkSmartPointer< vtkScalarsToColors > | ctf, | ||
| vtkSmartPointer< vtkPiecewiseFunction > | otf, | ||
| int | numCols, | ||
| double const * | lutRange, | ||
| bool | reverse | ||
| ) |
| void copyCameraParams | ( | vtkCamera * | dstCam, |
| vtkCamera * | srcCam | ||
| ) |
| void fillImage | ( | vtkSmartPointer< vtkImageData > | img, |
| double const | value, | ||
| iAProgress * | p = nullptr |
||
| ) |
fill all pixels in the given image with the given value
| img | image to be filled |
| value | used to fill each voxel in given image |
| p | if given, used to report progress |
| bool isFlat | ( | vtkImageData * | img | ) |
Checks whether an image is flat.
| img | a VTK image |
| bool isVtkIntegerImage | ( | vtkImageData * | img | ) |
Check whether the given image holds integer numbers.
| img | a VTK image |
| int mapReadableDataTypeToVTKType | ( | QString const & | dataTypeName | ) |
Maps a given data type string to the corresponding VTK type identifier.
Reverse of mapVTKTypeToReadableDataType
| dataTypeName | an entry from the list of readable data types (see readableDataTypeList()) |
| int mapRenderModeToEnum | ( | QString const & | modeName | ) |
map the given render mode name to the respective enum in the render mode map
| QString mapVTKTypeToReadableDataType | ( | int | vtkType | ) |
Maps a given VTK type to the corresponding readable data type.
Reverse of mapReadableDataTypeToVTKType
| vtkType | the VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) |
| size_t mapVTKTypeToSize | ( | int | vtkType | ) |
Returns the size (in bytes) of the given VTK type.
| vtkType | a VTK type identifier (VTK_INT, VTK_UNSIGNED_CHAR, ...) |
| iAVec3i mapWorldCoordsToIndex | ( | vtkImageData * | img, |
| double const * | worldCoord | ||
| ) |
Translate from world coordinates to voxel indices for the given image.
| img | a VTK image |
| worldCoord | world (=scene) coordinates (3 components: x, y, z) |
| void mapWorldToVoxelCoords | ( | vtkImageData * | img, |
| double const * | worldCoord, | ||
| double * | voxelCoord | ||
| ) |
Translate from world coordinates to voxel coordinates for the given image.
| img | a VTK image |
| worldCoord | world (=scene) coordinates (3 components: x, y, z) |
| voxelCoord | place for storing 3 components of voxel coordinates in img for the given world coordinates (clamped) |
| iAbase_API void multiplyImage | ( | vtkSmartPointer< vtkImageData > | imgDst, |
| double | value, | ||
| iAProgress * | p = nullptr |
||
| ) |
multiply all values of an image with the given value
| imgDst | the image to be multiplied |
| value | multiplier used for each voxel |
| p | if given, used to report progress |
| QStringList const & readableDataTypeList | ( | bool | withLongLongTypes | ) |
Returns a human-readable list of available data types for a single pixel/voxel.
| withLongLongTypes |
| void readImage | ( | QString const & | filename, |
| bool | releaseFlag, | ||
| vtkSmartPointer< vtkImageData > & | ptr | ||
| ) |
Read an image from disk into a VTK image.
| filename | the name of the file to read. |
| releaseFlag | whether the ITK release flag should be set on the ITK image reader |
| ptr | the smart pointer in which to store the loaded image (it will be assigned a new vtkImageData) |
| QMap< int, QString > const & RenderModeMap | ( | ) |
a map of available render modes in vtkSmartVolumeMapper to their names
| void setCamPosition | ( | vtkCamera * | cam, |
| iACameraPosition | pos | ||
| ) |
Set given camera position to one of the predefined positions available in iACameraPosition.
| void storeImage | ( | vtkSmartPointer< vtkImageData > | img, |
| QString const & | filename, | ||
| bool | useCompression = true, |
||
| iAProgress const * | progress = nullptr |
||
| ) |
Stores an image on disk (typically in .mhd format).
| img | the image to store |
| filename | the name of the file to write to. |
| useCompression | whether the file should be compressed (.zraw) or not (.raw) in case we are storing .mhd files |
| progress | an optional progress link; if != null, the file writer will trigger its progress signal |
| vtkStandardNewMacro | ( | iAvtkImageData | ) |
| void writeSingleSliceImage | ( | QString const & | filename, |
| vtkImageData * | img | ||
| ) |
Write a single slice image to a common 2D picture format.
| filename | the 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 |
| img | the image to write; this already needs to be a 2D image (i.e., size in Z dimension = 1) |