ComputeMajorAxis

MLModule
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLGeometry1
definition MLGeometry1.def

Purpose

The ComputeMajorAxis computes the longest diameter of a segmentation mask on a set of 2D slice. The background is defined as 0 and every other image value is considered to be inside, but typically the inside image value should be set to 1.

This module runs separately on each of the 2D slices and delivers the slice with the longest diameter. It does not do a connected components analysis, so the diameters will not take into account the connectedness of the voxels at all, if you have separated objects on the slice, the diameter will be across the objects.

The algorithm supports concave objects, but will only calculate the largest diameter on the convex hull of the concave object. This means that the resulting axis might be partly outside of the object if you e.g. measure the largest diameter of a banana.

If only single voxel is found, the extent will be set to the maximum of the voxel size in x and y and the major axis points will be in the center of that voxel.

The minor axis is less precise compared to the major axis, since it is found by scanning the image along perpendicular line segments along the major axis to find the results. The found minor axis positions will be snapped to the voxel center, so the resulting minor axis is only almost perpendicular to the major axis.

Parameter Fields

Field Index

Compute Minor Axis: Bool Update: Trigger
Major Axis Extent: Double Valid: Bool
Major Axis Point0: Vector3  
Major Axis Point1: Vector3  
Minor Axis Extent: Double  
Minor Axis Point0: Vector3  
Minor Axis Point1: Vector3  
Minor Valid: Bool  

Visible Fields

Major Axis Point0

name: majorAxisPoint0, type: Vector3, persistent: no

The starting point of the major axis (in world coordinates). This is set to the center of the starting voxel.

Major Axis Point1

name: majorAxisPoint1, type: Vector3, persistent: no

The end point of the major axis (in world coordinates). This is set to the center of the end voxel.

Major Axis Extent

name: majorAxisExtent, type: Double, persistent: no

The extent of the major diameter, from voxel center to voxel center.

Minor Axis Point0

name: minorAxisPoint0, type: Vector3, persistent: no

The minor axis starting point.

Minor Axis Point1

name: minorAxisPoint1, type: Vector3, persistent: no

The minor axis end point.

Minor Axis Extent

name: minorAxisExtent, type: Double, persistent: no

The minor axis extent.

Update

name: update, type: Trigger

Calculate the axes and diameters.

Valid

name: valid, type: Bool, persistent: no

Shows if the major axis is valid.

Minor Valid

name: minorValid, type: Bool, persistent: no

Shows if the minor axis is valid.

Compute Minor Axis

name: computeMinorAxis, type: Bool, default: TRUE

If enabled, the minor axis is calculated as well. If you only need the major axis, you should keep this disabled since it costs extra performance to calculate.