medpy.metric.binary.assd#

medpy.metric.binary.assd(result, reference, voxelspacing=None, connectivity=1)[source]#

Average symmetric surface distance.

Computes the average symmetric surface distance (ASD) between the binary objects in two images.

Parameters:
resultarray_like

Input data containing objects. Can be any type but will be converted into binary: background where 0, object everywhere else.

referencearray_like

Input data containing objects. Can be any type but will be converted into binary: background where 0, object everywhere else.

voxelspacingfloat or sequence of floats, optional

The voxelspacing in a distance unit i.e. spacing of elements along each dimension. If a sequence, must be of length equal to the input rank; if a single number, this is used for all axes. If not specified, a grid spacing of unity is implied.

connectivityint

The neighbourhood/connectivity considered when determining the surface of the binary objects. This value is passed to scipy.ndimage.generate_binary_structure and should usually be \(> 1\). The decision on the connectivity is important, as it can influence the results strongly. If in doubt, leave it as it is.

Returns:
assdfloat

The average symmetric surface distance between the object(s) in result and the object(s) in reference. The distance unit is the same as for the spacing of elements along each dimension, which is usually given in mm.

See also

asd
hd

Notes

This is a real metric, obtained by calling

>>> __surface_distances(result, reference)

and

>>> __surface_distances(reference, result)

and then averaging the two lists. The binary images can therefore be supplied in any order.