DIPlib Documentation - ©1995-2010 Quantitative Imaging Group, Delft University of Technology.

# FeatureFeret

Measure the object's Feret diameters

## SYNOPSIS

`#include "dip_measurement.h"`

dip_int dip_FeatureFeretID ( void )

## OUTPUT DATA TYPE

`dip_FloatArray`

## FUNCTION

`dip_FeatureFeretID` returns the ID value of this measurement function, that is registered by `Initialise`.

This function measures the Feret maximum and minimum diameters of an object. The Feret diameter are found by rotating the object's chain code. The default angle step size is defined by `DIP_MSR_FERET_ACCURACY` (set to 0.5 degrees). This measurement function supports a measurement parameter (see `Measure`), which is defined in `dip_measurement.h`. If a non-zero pointer to a `dip_FeretParameters` structure is supplied, the structure's `stepsize` parameter is used instead of the default angle step size. Furthermore the structure's `angles` Boolean parameter specifies whether the angles of the Feret diameters should be measured as well. This function supports 2D images only.

## ARGUMENTS

Data type | Name | Description
`dip_FeretParameters` | `*feret` | Pointer to a Feret measurement parameters structure (not yet implemented)

## NOTE

If any physical dimensions are passed to this function through `Measure`, only the sample distance along the first dimension are used. All other dimensions are assumed to be sampled the same way. This produces incorrect results for anisotropically sampled images.

## NOTE

This function uses chain codes. It expects each measured object to be compact, that is, to have only one chain code. Additional chain codes are ignored, meaning that non-compact objects are not measured properly. Take care in providing the correct connectivity value: if you object is compact only with 2-connectivity, this measure will fail if you call `Measure` with a value of 1 for the connectivity.

## CREDITS

The original code on which the current implementation is based, was donated by Gerie van der Heijden.

## SEE ALSO

`Measure`, `ImageChainCode`, `ChainCodeGetFeret`

`FeatureDimension`, `FeatureSize`, `FeatureCenter`, `FeatureGravity`, `FeatureMaximum`, `FeatureMinimum`, `FeatureFeret`, `FeatureMaxVal`, `FeatureMinVal`, `FeatureMean`, `FeatureStdDev`, `FeatureSum`, `FeatureMass`, `FeaturePerimeter`, `FeatureP2A`, `FeatureShape`, `FeatureSurfaceArea`, `FeatureAnisotropy2D`, `FeatureInertia`, `FeatureGinertia`, `FeatureMu`, `FeatureGmu`, `FeatureBendingEnergy`, `FeatureChainCodeBendingEnergy`, `FeatureExcessKurtosis`, `FeatureLongestChaincodeRun`, `FeatureOrientation2D`, `FeatureSkewness`