MATITK: Additional documentation

24. November 2009

Did you ever ask yourself, how a certain segmentation of MATITK works? Here you can find a short reference and example call of the integrated segmentation algorithms of MATITK.

SCC: ConfidenceConnectedSegmentation

Link to ITK Doxygen and function description:
Segment pixels with similar statistics using connectivity.
This filter extracts a connected set of pixels whose pixel intensities are consistent with the pixel statistics of a seed point. The mean and variance across a neighborhood (8-connected, 26-connected, etc.) are calculated for a seed point. Then pixels connected to this seed point whose values are within the confidence interval for the seed point are grouped. The width of the confidence interval is controlled by the „Multiplier“ variable (the confidence interval is the mean plus or minus the „Multiplier“ times the standard deviation). If the intensity variations across a segment were gaussian, a „Multiplier“ setting of 2.5 would define a confidence interval wide enough to capture 99% of samples in the segment.

Parameter:
[Multiplier NumberOfIteration ReplaceValue]

Example:
SegmentedImage = matitk('SCC', [1.2 5 1], uint8(InputImage), uint8([]), [row, col, slice]);

SCSS: CellularSegmentationSegmentation(Debug)

I couldn’t find any documentation.

Parameter:
[SetChemoAttractantLowThreshold SetChemoAttractantHighThreshold numberOfIterations]

Example:
SegmentedImage = matitk('SCSS', [3 10 5], uint8(InputImage), uint8([]), []);

SCT: ConnectedThresholdSegmentation

Link to ITK Doxygen and function description:
Label pixels that are connected to a seed and lie within a range of values.
ConnectedThresholdImageFilter labels pixels with ReplaceValue that are connected to an initial Seed AND lie within a Lower and Upper threshold range.

Parameter:
[LowerThreshold UpperThreshold]

Example:
SegmentedImage = matitk('SCT', [40 59], uint8(InputImage), uint8([]), []);

SFM: FastMarchSegmentation

Link to ITK Doxygen and function description:
Solve an Eikonal equation using Fast Marching.
Fast marching solves an Eikonal equation where the speed is always non-negative and depends on the position only. Starting from an initial position on the front, fast marching systematically moves the front forward one grid point at a time.
Updates are preformed using an entropy satisfy scheme where only „upwind“ neighborhoods are used.

Parameter:
[stoppingTime]

Example:
SegmentedImage = matitk('SFM', [1], uint8(InputImage), uint8([]), [row, col, slice]);

SGAC: GeodesicActiveContourLevelSetSegmentation

Link to ITK Doxygen and function description:
Segments structures in images based on a user supplied edge potential map.
This class is a level set method segmentation filter. An initial contour is propagated outwards (or inwards) until it “sticks“ to the shape boundaries. This is done by using a level set speed function based on a user supplied edge potential map.
The PropagationScaling parameter can be used to switch from propagation outwards (POSITIVE scaling parameter) versus propagating inwards (NEGATIVE scaling parameter).
In general, the larger the CurvatureScaling, the smoother the resulting contour. To follow the implementation in Caselles et al paper, set the PropagationScaling to (the inflation or ballon force) and AdvectionScaling and CurvatureScaling both to 1.0.

Parameter:
[propagationScaling CurvatureScaling AdvectionScaling MaximumRMSError MaxIteration]

Example:
SegmentedImage = matitk('SGAC', [1 10 1 2 10], uint8(InputImage), uint8(PotentialMap), [row, col, slice]);

SIC: IsolatedConnectedSegmentation

Link to ITK Doxygen and function description:
Label pixels that are connected to one set of seeds but not another.
IsolatedConnectedImageFilter finds the optimal threshold to separate two regions. It has two modes, one to separate dark regions surrounded by bright regions by automatically finding a minimum isolating upper threshold, and another to separate bright regions surrounded by dark regions by automatically finding a maximum lower isolating threshold.
The algorithm labels pixels with ReplaceValue that are connected to Seeds1 AND NOT connected to Seeds2. When finding the threshold to separate two dark regions surrounded by bright regions, given a fixed lower threshold, the filter adjusts the upper threshold until the two sets of seeds are not connected. The algorithm uses a binary search to adjust the upper threshold, starting at Upper. The reverse is true for finding the threshold to separate two bright regions. Lower defaults to the smallest possible value for the InputImagePixelType, and Upper defaults to the largest possible value for the InputImagePixelType.

Parameter:
[LowerThreshold ReplaceValue]

Example:
SegmentedImage = matitk('SIC', [30 255], uint8(InputImage), uint8([]), [row, col, slice, row2, col2, slice2]);

SLLS: LaplacianLevelSetLevelSetSegmentation

Link to ITK Doxygen and function description:
Segments structures in images based on a second derivative image features.
This class is a level set method segmentation filter. It constructs a speed function which is zero at image edges as detected by a Laplacian filter. The evolving level set front will therefore tend to lock onto zero crossings in the image. The level set front moves fastest near edges.
The Laplacian segmentation filter is intended primarily as a tool for refining existing segmentations. The initial isosurface (as given in the seed input image) should ideally be very close to the segmentation boundary of interest. The idea is that a rough segmentation can be refined by allowing the isosurface to deform slightly to achieve a better fit to the edge features of an image. One example of such an application is to refine the output of a hand segmented image.
Because values in the Laplacian feature image will tend to be low except near edge features, this filter is not effective for segmenting large image regions from small seed surfaces.
This filter requires two inputs. The first input is a seed image. This seed image must contain an isosurface that you want to use as the seed for your segmentation. It can be a binary, graylevel, or floating point image. The only requirement is that it contain a closed isosurface that you will identify as the seed by setting the IsosurfaceValue parameter of the filter. For a binary image you will want to set your isosurface value halfway between your on and off values (i.e. for 0’s and 1’s, use an isosurface value of 0.5).
The second input is the feature image. This is the image from which the speed function will be calculated. For most applications, this is the image that you want to segment. The desired isosurface in your seed image should lie within the region of your feature image that you are trying to segment.

Parameter:
[IsoSurfaceValue PropagationScaling CurvatureScaling MaximumRMSError MaxIteration]

Example:
SegmentedImage = matitk('SLLS', [30 1.2 1 2 20], uint8(InputImage), uint8(SeedImage), []);

SNC: NeighbourhoodConnectedSegmentation

Link to ITK Doxygen and function description:
Label pixels that are connected to a seed and lie within a neighborhood.
NeighborhoodConnectedImageFilter labels pixels with ReplaceValue that are connected to an initial Seed AND whose neighbors all lie within a Lower and Upper threshold range.

Parameter:
[RadiusX RadiusY RadiusZ LowerThreshold UpperThreshold ReplaceValue]

Example:
SegmentedImage = matitk('SNC', [10 10 1 30 60 255], uint8(InputImage), uint8([]), [row, col, slice]);

SOT: OtsuThresholdSegmentation

Link to ITK Doxygen and function description:
Threshold an image using the Otsu Threshold.
This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the OtsuThresholdImageCalculator and applies that theshold to the input image using the BinaryThresholdImageFilter. The NunberOfHistogram bins can be set for the Calculator. The InsideValue and OutsideValue can be set for the BinaryThresholdImageFilter.

Parameter:
[numberOfHistogram]

Example:
SegmentedImage = matitk('SOT', [2], uint8(InputImage), uint8([]), []);

SSDLS: ShapeDetectionLevelSetFilter

Link to ITK Doxygen and function description:
Segments structures in images based on a user supplied edge potential map.
This class is a level set method segmentation filter. An initial contour is propagated outwards (or inwards) until it “sticks“ to the shape boundaries. This is done by using a level set speed function based on a user supplied edge potential map.
This filter requires two inputs. The first input is a initial level set. The initial level set is a real image which contains the initial contour/surface as the zero level set. For example, a signed distance function from the initial contour/surface is typically used. Note that for this algorithm the initial contour has to be wholly within (or wholly outside) the structure to be segmented.
The second input is the feature image. For this filter, this is the edge potential map. General characteristics of an edge potential map is that it has values close to zero in regions near the edges and values close to one inside the shape itself.

Parameter:
[propagationScaling curvatureScaling SetMaximumRMSError SetNumberOfIterations]

Example:
SegmentedImage = matitk('SSDLS', [1.4 1 2 20], uint8(FeatureImage), uint8(GradientImage), []);

SWS: WatershedSegmentation

Link to ITK Doxygen and function description:
A low-level image analysis algorithm that automatically produces a hierarchy of segmented, labeled images from a scalar-valued image input.
This filter implements a non-streaming version of an image segmentation algorithm commonly known as „watershed segmentation“. Watershed segmentation gets its name from the manner in which the algorithm segments regions into catchment basins. If a function f is a continuous height function defined over an image domain, then a catchment basin is defined as the set of points whose paths of steepest descent terminate at the same local minimum of f.
wo parameters control the output of this filter, Threshold and Level. The units of both parameters are percentage points of the maximum height value in the input.
Threshold is used to set the absolute minimum height value used during processing. Raising this threshold percentage effectively decreases the number of local minima in the input, resulting in an initial segmentation with fewer regions. The assumption is that the shallow regions that thresholding removes are of of less interest.
The Level parameter controls the depth of metaphorical flooding of the image. That is, it sets the maximum saliency value of interest in the result. Raising and lowering the Level influences the number of segments in the basic segmentation that are merged to produce the final output. A level of 1.0 is analogous to flooding the image up to a depth that is 100 percent of the maximum value in the image. A level of 0.0 produces the basic segmentation, which will typically be very oversegmented. Level values of interest are typically low (i.e. less than about 0.40 or 40% ), since higher values quickly start to undersegment the image.

Parameter:
[SetLevel SetThreshold]

Example:
SegmentedImage = matitk('SWS', [0.4 0.1], uint8(InputImage), uint8([]), []);

micha | Newsblog | Kommentare | Trackback | Tags: , , , Zum Seitenbeginn springen

Kommentar schreiben

  •  
  •  
  •  

Verfolge neue Kommentare zu diesem Beitrag mit diesem Kommentar-Feed.

designest = design & nest

Zufallsbilder

New York City: Times Square #2Studio 1, MDRNew York City: Riding the SubwayMeine Canon 7D als leckerer Kuchen!Porsche 911 GT2I love LE - We love LE - King Kong loves LE!OlivenbaumOslos OperGraz: KunsthausTuffner-PyramideCity Tunnel Leipzig: Besichtigung #2Boston, USA
Alle Bilder im Fotoblog