ImageDev

LabelAnalysis

Computes a set of measurements on objects defined in a label image.

Access to parameter description

For an introduction: This algorithm computes a list of measurements for each label of the input image, and generates an output AnalysisMsr object containing the result values.

If the label input image has a coordinate system unit defined in its calibration property, analysis results are expressed in this coordinate system unit.

More details about each available measurement can be found in the NativeMeasurement object.

See also
@SEE_EXAMPLE UserGuide_ImageAnalysis_LabelAnalysis UserGuide_TypicalUseCases_ParticleAnalysis UserGuide_TypicalUseCases_PoreAnalysis UserGuide_ImageAnalysis_MeasurementBrowsing@END_SEE_EXAMPLE

Function Syntax

This function returns outputAnalysis.
// Function prototype
AnalysisMsr::Ptr labelAnalysis( std::shared_ptr< iolink::ImageView > inputLabelImage, std::shared_ptr< iolink::ImageView > inputIntensityImage, AnalysisMsr::Ptr outputAnalysis = NULL );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
inputLabelImage
The label input image. Image Label nullptr
input
inputIntensityImage
The intensity input image. If it equals null, the label input image will be used as the intensity input image. Image Binary, Label, Grayscale or Multispectral nullptr
input and output
outputAnalysis
The input and output analysis. This object defines the features to measure and stores the results. AnalysisMsr nullptr

Object Examples

auto polystyrene_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep_label.vip" );
std::shared_ptr< iolink::ImageView > polystyrene =
    ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" );

// Creates an analysis with Area2d and InverseCircularity2d measurements
AnalysisMsr::Ptr analysis( new AnalysisMsr() );
measurements::Area2d::Ptr areaMsr = analysis->select( NativeMeasurements::area2d );
measurements::InverseCircularity2d::Ptr inverseMsr = analysis->select( NativeMeasurements::inverseCircularity2d );

LabelAnalysis labelAnalysisAlgo;
labelAnalysisAlgo.setInputLabelImage( polystyrene_sep_label );
labelAnalysisAlgo.setInputIntensityImage( polystyrene );
labelAnalysisAlgo.setOutputAnalysis( analysis );
labelAnalysisAlgo.execute();

std::cout << "Area2d: " << areaMsr->value( 0 ) << std::endl;
std::cout << "inverseCircularity2d: " << inverseMsr->value( 0 ) << std::endl;

Function Examples

auto polystyrene_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep_label.vip" );
std::shared_ptr< iolink::ImageView > polystyrene =
    ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" );

// Creates an analysis with Area2d and InverseCircularity2d measurements
AnalysisMsr::Ptr analysis( new AnalysisMsr() );
measurements::Area2d::Ptr areaMsr = analysis->select( NativeMeasurements::area2d );
measurements::InverseCircularity2d::Ptr inverseMsr = analysis->select( NativeMeasurements::inverseCircularity2d );

labelAnalysis( polystyrene_sep_label, polystyrene, analysis );

std::cout << "Area2d: " << areaMsr->value( 0 ) << std::endl;
std::cout << "inverseCircularity2d: " << inverseMsr->value( 0 ) << std::endl;