Package com.openinventor.imageviz.engines.imageanalysis
Measurements can essentially be divided into two types, local and global.
Local measures are computed by segmenting each original object into a union of disjointed, or unique, elements, on each of which elementary measurements are performed. The local measure is then defined as the sum of elementary measures on the disjointed sets. For example, the surface area of an object can be defined as the sum of the areas of the pixels in the object. Local measures are mostly computed with neighborhood operators.
Global measures require that information on an entire object be computed. They cannot be deduced from the values of the subsets. For example, the Feret diameter cannot be computed from the Feret diameters of subsets of the object. Global measures should ideally be computed for objects which are fully visible, or equivalently, which fall into the image field and do not intersect the field boundary.
In most of the explanations of the commands, different formulae are presented for both the continuous and discrete cases. The continuous case refers to the analysis of "real" objects, which can be theoretically assumed to have a continuous range of values.
The discrete case refers to analysis in an actual digital image, where there is a finite number of pixels and values.
Some of the analysis engines, like SoLabelAnalysisQuantification
, SoLabelFilteringAnalysisQuantification
or SoGlobalAnalysisQuantification
, takes an intensity image for input.
Providing an intensity image some measures about the gray level statistics of each label may be computed such as histogram or texture features. For instance the intensity integral measurement
would sum the gray levels of the intensity image for each label.
Using measures that doesn't take gray levels into account, like geometric features, this input can be also connected to the label image. In this case the intensity integral measurement
would amount to multiply the index of each label by its number of voxels.
The following engines compute a set of measurements on an image: SoLabelAnalysisQuantification
, SoLabelFilteringAnalysisQuantification
, SoGlobalAnalysisQuantification
.
To select these measurements they have to be added to a SoMFDataMeasure
object. Details about each native measure can be found in SoDataMeasurePredefined
.
e.g., : To select the equivalent diameter measurement for an analysis:
labelAnalysis->measureList.set1Value(0,new SoDataMeasurePredefined(SoDataMeasurePredefined.EQUIVALENT_DIAMETER_2D));