ImageDev

IntensityIntegral3d

Computes the sum of all voxel intensities of a three-dimensional image.

Access to parameter description

For an introduction: section Image Analysis.

In the continuous case, the 3D intensity integral is defined as:
$$ V(X)=\int_{R^3}I(x,y,z)dxdydz $$
In the discrete case, Intensity Integral is approximated by the sum of the pixel intensities in X: $$ V(X)=\sum_{i,j,k}I(x_i,y_j,z_k) $$
Where $I(x_i,y_j,z_k)$ = the intensity of voxel of coordinates $x_i,y_j,z_k$

On a grayscale image, this algorithm computes the sum of gray values in the image.
This algorithm takes into account the pixel size given by the input image calibration property. Each pixel intensity is multiplied by the pixel size in the X and Y directions before being added to the result.

On a binary image it amounts to compute a 3D volume.

See also
See related example

Function Syntax

This function returns outputMeasurement.
// Function prototype
IntensityIntegral3dMsr::Ptr intensityIntegral3d( std::shared_ptr< iolink::ImageView > inputImage, IntensityIntegral3dMsr::Ptr outputMeasurement = NULL );
This function returns outputMeasurement.
// Function prototype.
intensity_integral_3d( input_image, output_measurement = None )
This function returns outputMeasurement.
// Function prototype.
public static IntensityIntegral3dMsr
IntensityIntegral3d( IOLink.ImageView inputImage, IntensityIntegral3dMsr outputMeasurement = null );

Class Syntax

Parameters

Class Name IntensityIntegral3d

Parameter Name Description Type Supported Values Default Value
input
inputImage
The 3D binary or grayscale input image. Image Binary, Label, Grayscale or Multispectral nullptr
output
outputMeasurement
The output measurement results. IntensityIntegral3dMsr nullptr

Object Examples

auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" );

IntensityIntegral3d intensityIntegral3dAlgo;
intensityIntegral3dAlgo.setInputImage( foam );
intensityIntegral3dAlgo.execute();

std::cout << "intensityIntegral: " << intensityIntegral3dAlgo.outputMeasurement()->intensityIntegral( ) ;
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip"))

intensity_integral_3d_algo = imagedev.IntensityIntegral3d()
intensity_integral_3d_algo.input_image = foam
intensity_integral_3d_algo.execute()

print( "intensityIntegral: ", str( intensity_integral_3d_algo.output_measurement.intensity_integral( ) ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" );

IntensityIntegral3d intensityIntegral3dAlgo = new IntensityIntegral3d
{
    inputImage = foam
};
intensityIntegral3dAlgo.Execute();

Console.WriteLine( "intensityIntegral: " + intensityIntegral3dAlgo.outputMeasurement.intensityIntegral( ) );

Function Examples

auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" );

auto result = intensityIntegral3d( foam );

std::cout << "intensityIntegral: " << result->intensityIntegral( ) ;
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip"))

result = imagedev.intensity_integral_3d( foam )

print( "intensityIntegral: ", str( result.intensity_integral( ) )  )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" );

IntensityIntegral3dMsr result = Processing.IntensityIntegral3d( foam );

Console.WriteLine(  "intensityIntegral: " + result.intensityIntegral( )  );