Fit active contours
Uses active contours to fit a 2D concave hull to specified objects.
Description
Uses active contours to fit a 2D concave hull to specified objects. The 2D perimeter of each input object is converted to a closed contour, the position of which is optimised in order to minimise various internal (contour) and external (image) energies. Internal energies are elasticity and bending of the contour, which aim to minimise point-point separation and adjacent segment alignment, respectively. External energies are provided by the image intensity along the path and are minimised when the contour sits in dark areas of the image. Energies are iteratively optimised using a greedy algorithm which tests each point along the contour at all points within a specified search radius, taking the lowest energy point as the new location. For more information on active contours, see Kass, M.; Witkin, A.; Terzopoulos, D., "Snakes: Active contour models", International Journal of Computer Vision, 1988, 1, 321.
Parameters
Parameter | Description |
---|---|
Input image | Image from the workspace to which the contours will be fit. The intensity of this image will contribute to the external forces applied to the contour. For example, the contour will attempt to minimise the intensity along the path of the contour. |
Input objects | Objects from the workspace to which active contours will be fit. Active contours are fit in 2D to the object points from the first slice. As such, input objects can be stored in 3D space, but only a single slice will be fit. |
Update input objects | When selected, the input objects will have their coordinates replaced with the coordinates from the fit contour. Applied coordinates will be solid within the boundary of the associated contour. |
Output objects | If "Update input objects" is not selected, this is the name with which the output contour objects will be stored in the workspace. |
Elastic energy contribution | Weight assigned to the elastic energy of the contour. The elastic energy grows with increasing separation between adjacent points along the contour. During optimisation, the contour will attempt to minimise the elastic energy by reducing the separation between adjacent points (i.e. the contour will shrink). The greater the associated weight, the more this term will contribute to the overall energy of the contour. Larger weights will cause the contour to shrink more readily. |
Bending energy contribution | Weight assigned to the bending energy of the contour. The bending energy grows as the angle between adjacent segments also increases. During optimisation, the contour will attempt to minimise the bending energy by reducing small bends in the contour. The lowest bending energy state for a contour is a perfect circle. The greater the associated weight, the more this term will contribute to the overall energy of the contour. Larger weights will cause the contour to become smoother. |
Image path energy contribution | Weight assigned to the external (image) energy of the contour. The image path energy is equal to the intensity of the pixels along the path. During optimisation, the contour will attempt to minimise the image path energy by sitting along low intensity lines in the image. The greater the associated weight, the more this term will contribute to the overall energy of the contour. Larger weights will cause the contour to stick to dark regions more readily, but may also cause it to get stuck on local minima in the image. |
Balloon energy contribution | Weight assigned to the balloon energy of the contour. The balloon energy pushes the contour outwards in at attempt to overcome the elastic energy-induced shrinkage. The greater the associated weight, the more this term will contribute to the overall energy of the contour. Larger weights will cause the contour to grow outwards faster. |
Node density | Density of coordinates along the perimeter of the input object that will be used as control points in the contour. Density is specified as a decimal in the range 0-1, where densities approaching 0 have fewer points and a density of 1 includes all points on the object perimeter. |
Search radius (px) | On each optimisation iteration, each point along the contour will be tested at all local points within this search radius, with the lowest energy point taken as the new location. |
Maximum number of iterations | The maximum number of optimisation iterations that will be completed. If contour stability has not been reached by this number of iterations, the contour at this point will be exported. |
Use motion threshold | When selected, optimisation of the contour can be terminated early if successive iterations don't yield sufficient motion (i.e. the contour has reached stability). The threshold amount of motion is specified by "Motion threshold (px)". Early termination of optimisation for stable contours will result in a speed increase for this module. |
Motion threshold (px) | If "Use motion threshold" is selected, this is the average motion of contour points between successive optimisation iterations below which the contour will be assumed to have reached stability. If stability is reached the optimisation routine is terminated. |
Show contours in realtime | When selected, the contour evolution will be displayed on the input image in realtime. This may be useful for optimising weight parameters. |