Abstract base class for all ImageViz image data adapter classes. More...
#include <ImageViz/Nodes/Images/SoImageDataAdapter.h>
Public Types | |
enum | Interpretation { VALUE, LABEL, BINARY } |
Public Member Functions | |
virtual SoType | getTypeId () const |
virtual Interpretation | getInterpretation () const |
virtual void | setInterpretation (const Interpretation &interpretation) |
virtual SbImageDataType | getImageDataType () |
virtual SbVec4i32 | getSize () const |
virtual SbBox3f | getExtent () const |
SbVec3f | getVoxelSize () const |
void | setVoxelSize (const SbVec3f &voxelSize) |
SbVec3f | getOrigin () const |
void | setOrigin (const SbVec3f &origin) |
void | setDirection (const SbVec3f &rowDirection, const SbVec3f &columnsDirection) |
SbVec3f | getRowDirection () const |
SbVec3f | getColumnDirection () const |
SbVec3f | getPlaneDirection () const |
SbMatrix | getIndexToPhysicalTransformation () const |
SbImageDataAccessor & | getDataAccessor () |
Static Public Member Functions | |
static SoType | getClassTypeId () |
Public Attributes | |
SoSFEnum | interpretation |
SoSFBox3f | extent |
SoSFRotation | orientation |
See for example:
NOTE: SoImageDataAdapter provides access to the image data but does not guarantee that all the data is loaded in memory. Only SoMemoryDataAdapter is guaranteed to do that. As a result, only an SoMemoryDataAdapter (or an SoProxyDataAdapter that is attached to an SoMemoryDataAdapter) is completely safe to use as input for ImageViz filter engines. Many engines will work with data partially in memory, but some, for example SoImageRegistrationTransform, will only work if the image is completely in memory. See the documentation for the specific engines you are using. Conveniently, the utility method SoImageDataAdapterHelper::getAppropriateAdapter() returns an SoMemoryDataAdapter object if there is enough memory to load all the data.
ImageViz Overview
SoFieldContainer, SbImageDataAdapterHelper
InteractiveThresholding, MarkerPicking, OverlayDisplay, DenoisingImage2D, DenoisingImage3D, ExtractingROI, MedicalSegmentation
Image Interpretation.
This enumeration defines the way the data values in the image should be interpreted. Some engines require their input image to have a specific interpretation type and give an error if the interpretation type is incorrect. Engines automatically set the appropriate interpretation type in their output image(s). The application is responsible for setting the appropriate interpretation type in images created by the application, for example if a mask image is loaded from disk.
static SoType SoImageDataAdapter::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoFieldContainer.
Reimplemented in SoFileDataAdapter, SoMemoryDataAdapter, SoProxyDataAdapter, and SoVolumeReaderAdapter.
SbVec3f SoImageDataAdapter::getColumnDirection | ( | ) | const |
Returns the vector in physical coordinate that points from the origin (0,0,0) to the point (0,1,0).
The vector is normalized.
SbImageDataAccessor& SoImageDataAdapter::getDataAccessor | ( | ) |
Returns an SbImageDataAccessor.
The SbImageDataAccessor can be used to access data contained inside this SoImageDataAdapter.
virtual SbBox3f SoImageDataAdapter::getExtent | ( | ) | const [virtual] |
Returns the extent of the image in 3D.
Convenience method to get the value of the extent field.
virtual SbImageDataType SoImageDataAdapter::getImageDataType | ( | ) | [virtual] |
Returns the data type of the image.
SbMatrix SoImageDataAdapter::getIndexToPhysicalTransformation | ( | ) | const |
Returns the transformation that maps a position in the image coordinate system to a position in the physical coordinate system.
virtual Interpretation SoImageDataAdapter::getInterpretation | ( | ) | const [virtual] |
Returns the current interpretation of the image.
Convenience method to get the value of the interpretation field. Use enum Interpretation.
SbVec3f SoImageDataAdapter::getOrigin | ( | ) | const |
Returns the image origin in 3D.
The image origin is the "min" corner of the image extent.
SbVec3f SoImageDataAdapter::getPlaneDirection | ( | ) | const |
Returns the vector in physical coordinate that points from the origin (0,0,0) to the point (0,0,1).
The vector is normalized.
SbVec3f SoImageDataAdapter::getRowDirection | ( | ) | const |
Returns the vector in physical coordinate that points from the origin (0,0,0) to the point (1,0,0).
The vector is normalized.
virtual SbVec4i32 SoImageDataAdapter::getSize | ( | ) | const [virtual] |
Returns a vector representing the dimensions of the image data.
Indices 0, 1 and 2 refer to width, height and depth of image. Index 3 refers to timestep. For a 2D image index 2 is 1.
virtual SoType SoImageDataAdapter::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Implements SoTypedObject.
Reimplemented in SoFileDataAdapter, SoMemoryDataAdapter, SoProxyDataAdapter, and SoVolumeReaderAdapter.
SbVec3f SoImageDataAdapter::getVoxelSize | ( | ) | const |
void SoImageDataAdapter::setDirection | ( | const SbVec3f & | rowDirection, | |
const SbVec3f & | columnsDirection | |||
) |
Set the direction cosines of rows and columns.
The row direction is a vector that points from the origin to the point (1,0,0). The column direction is a vector that points from the origin to the point (0,1,0).
In the DICOM standard, this information corresponds to the tag "Image Orientation (Patient) (0020,0037)"
virtual void SoImageDataAdapter::setInterpretation | ( | const Interpretation & | interpretation | ) | [virtual] |
Sets the interpretation of the image.
Convenience method to set the value of the interpretation field. Use enum Interpretation.
void SoImageDataAdapter::setOrigin | ( | const SbVec3f & | origin | ) |
Sets the image origin in 3D.
Modifies the "min" corner of the image extent. The width and height of the extent are unchanged and therefore the voxel size is unchanged.
void SoImageDataAdapter::setVoxelSize | ( | const SbVec3f & | voxelSize | ) |
The extent and orientation fields define the position, size and orientation of the image in 3D (typicallly the physical space).
The extent field defines an axis aligned box in 3D. It has a 'min' corner, which is the image origin, and a 'max' corner. The orientation field defines a rotation around the image origin.
If the image is loaded from a file format that specifies a physical extent and/or orientation (for example DICOM), then these fields are initialized with the information specifies in the image file. If no extent is specified, then the extent field is set to (0, 0, 0, sizeX, sizeY, sizeZ). If no rotation is specified, then the orientation field is set to identity. The application can set either or both of these fields as needed.
The voxel size is the extent divided by the image dimensions (see getSize()).
Image Interpretation Default is VALUE.
This field defines the way the data values in the image should be interpreted. Some engines require their input image to have a specific interpretation type and give an error if the interpretation type is incorrect. Engines automatically set the appropriate interpretation type in their output image(s). The application is responsible for setting the appropriate interpretation type in images created by the application, for example if a mask image is loaded from disk. Use enum Interpretation.