SoImageDataAdapter Class Reference
[Images]

ImageViz Abstract base class for all ImageViz image data adapter classes. More...

#include <ImageViz/Nodes/Images/SoImageDataAdapter.h>

Inheritance diagram for SoImageDataAdapter:
SoFieldContainer SoBase SoRefCounter SoTypedObject SoFileDataAdapter SoMemoryDataAdapter SoProxyDataAdapter SoVolumeReaderAdapter

List of all members.

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
SbImageDataAccessorgetDataAccessor ()

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFEnum interpretation
SoSFBox3f extent
SoSFRotation orientation

Detailed Description

ImageViz Abstract base class for all ImageViz image data adapter classes.

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 SoImageRegistrationTransform3d, 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.

SEE ALSO

ImageViz Overview
SoFieldContainer, SbImageDataAdapterHelper

See related examples:

InteractiveThresholding, MarkerPicking, OverlayDisplay, DenoisingImage2D, DenoisingImage3D, ExtractingROI, MedicalSegmentation


Member Enumeration Documentation

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.

Enumerator:
VALUE 

Image is a grayscale or color image.

A ‘VALUE’ type image with exactly 3 or 4 channels is assumed to be a color image (RGB or RGBA). In all other cases, each channel is independently treated as a grayscale image.

LABEL 

Image is a collection of objects defined by id (label) values.

In other words, the value of each voxel is a label id. If the image has multiple channels, e.g. a color image, only the first channel is used. Using a raw (unsegmented) grayscale image as input may give unexpected results, e.g. a large number of very small objects.

BINARY 

Image is a mask.

In other words, the value of each voxel is a boolean. If a grayscale image is used as input, 0 is false and all other values are true. If the image has multiple channels, e.g. a color image, only the first channel is used.


Member Function Documentation

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

Returns the size of a voxel in 3D.

The voxel size is the extent divided by the image dimensions (see getSize()).

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  ) 

Sets the voxel size in 3D.

The extent field is automatically updated to be voxel size times the image dimensions (see getSize()).


Member Data Documentation

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.


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/