See: Description
Interface | Description |
---|---|
SbImageDataAccessor.Region |
A region must be an ordered set with a first voxel and for each voxel a next voxel, else we cannot associate a buffer to this region.
|
Class | Description |
---|---|
SbChannelList |
List of channel to extract.
|
SbDiscreteLineProfile |
Profile line extractor
Define a profile line extractor based on the Bresenham's Line algorithm.
|
SbImageDataAccessor |
Class used to retrieve data from an
SoImageDataAdapter . |
SbImageDataAccessor.SubVolumeRegion |
Region representing a 3D box. |
SbImageDataAdapterHelper |
Helper class for
SoImageDataAdapter . |
SbImageDataType |
Basic class representing multi channel DataType.
|
SbKernel2i32 |
Integer 2D-Kernel for morphological operations.
|
SbKernel3i32 |
Integer 3D-Kernel for morphological operations.
|
SoImageViz |
Module class use to register/unregister ImageViz module.
|
Important notices:
|
Specifically designed for application developers, the Open Inventor
Open Inventor ImageViz SDK provides an extensive collection of high-performance parallelized 2D/3D image processing and analysis operators to implement application workflows, including:
ImageViz is tightly integrated into the Open Inventor SDK and its standard concept of engines, nodes, and fields. Open Inventor data objects can be connected as input to ImageViz processing engines. Moreover, any ImageViz engine
This section introduces how to start working with ImageViz from scratch. Each demo below provides an example for performing a step of a classical image processing chain.
Please note when using the ImageViz documentation: At the top of each engine's page there is a link to a page containing general information about the algorithms used in that group of engines.
The pre-processing step helps to enhance the quality of the image thanks to an image processing filter.
This example shows how to denoise an image using a median filter.
First it is shown how to load a 2D image from a file into an SoImageDataAdapter
object.
SoMedianFilterProcessing
engine.
SoImage
object.
This example shows how to denoise an image using a bilateral filter.
First it is shown how to load a 3D image from a file into an SoImageDataAdapter
object.
SoBilateralFilterProcessing
engine.
Segmentation is a very important step of an image processing workflow. This is where objects to identify in the scene are isolated in a binary or label image.
This example shows how to create a binary image from an input grayscale image with a classic thresholding operator. The input image is shown with the resulting thresholded image as overlay.
The input grayscale image is loaded in an SoImageDataAdapter
object.
SoThresholdingProcessing
engine.
This example shows how to create a binary image from an input grayscale image performing a region growing from a seed point. The center of the image, that belongs to the dark shape to detect, is taken as the seed point. The input image is shown with the boundaries of the resulting thresholded image as overlay.
The input grayscale image is loaded in an SoImageDataAdapter
object.
SoFloodFillThresholdProcessing
engine.
SoObjectBoundariesProcessing
engine for a display without hiding inside the object.
Image analysis is the final step of an image processing workflow when its aim is to quantify the contents of a scene. This is where we take out the numerical results from the segmented image.
This example shows how to compute two native measurements on a segmented binary image.
Once the input image is loaded, the SoLabelingProcessing
engine is applied to assign a different label to each object of the scene.
SoLabelAnalysisQuantification
engine is used with two measurements: the equivalent diameter and the Feret diameters ratio (shape factor of elongation).
ImageViz proposes a substancial set of native measures
. However it may be necessary to define its own formula to be computed in a label analysis.
This example shows how to define a custom measure.
The workflow is almost the same as the Label analysis example.
SoDataMeasureCustom
object.
SoLabelAnalysisQuantification
engine and computed for each particle.
Some of the ImageViz native measures have attributes (measures related to Ferets diameters, histogram computation or cooccurrence matrix).
This example shows how to modify the attributes of a measure.
The Feret's diameter ratio computes the ratio between 2 Feret's diameter. Depending on the angular step used to compute the distribution of Feret's diameters, the precision of the result can change.
The workflow is almost the same as the Label analysis example.
SoLabelAnalysisQuantification
engines are intialized.
This section contains examples for handling input and output data.
This example demonstrates how to create a new 2D image containing data from a buffer.
First it is shown how to fill an SoCpuBufferObject
with synthetic values that would represent a bright square on a gray background.
Then this buffer is set in an SoMemoryDataAdapter
that corresponds to a 2D 512x512 image.
At least a simple scene graph is built and the image is displayed as an orthoslice in a viewer.
This example demonstrates how to create a new 3D image containing data from a buffer.
First it is shown how to fill an SoCpuBufferObject
with synthetic values that would represent a bright 3D bar on a gray background.
Then this buffer is set in an SoMemoryDataAdapter
that corresponds to a 3D 256x256x32 image.
At least a simple scene graph is built and the image is displayed in a viewer with as a volume rendering.
It is sometimes necessary to select a Region Of Interest (ROI) inside an image. This allows removing non relevant data or saving computation time during the validation step of a workflow.
This example shows how to load an image from a file into an SoImageDataAdapter
object.
SoMemoryDataAdapter
.
Once an image processing chain has been validated on a set of representative samples it can be useful to apply the same workflow on a stack of images located in a same folder.
This example shows how to apply a gradient operator on a list of images and save the result in a new file.
A list of every TIFF files located in a given directory is defined (/ImageViz/Data).
These examples illustrates how a standard image processing workflow can be implemented. Each step is applied from loading a grayscale image to displaying results of an analysis.
All parameters of the workflow engines are exposed in the user interface, the user can change the parameters and verify the result on the output image.
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com