You are here: Start » Function Reference » Computer Vision » Image Segmentation » SegmentImage_Color
SegmentImage_Color
Header: | AVL.h |
---|---|
Namespace: | avl |
Module: | FoundationPro |
Segments an image basing on distance to model colors.
Applications: Detection of objects of undefined shape, but characterized by uniform color and good contrast to the background.
Syntax
void avl::SegmentImage_Color ( const avl::Image& inImage, atl::Optional<const avl::Region&> inRoi, const atl::Array<avl::Pixel>& inReferenceColors, const float inMaxDifference, atl::Optional<const atl::Array<float>&> inDifferenceMultipliers, float inChromaAmount, bool inForceDisjointRegions, atl::Array<avl::Region>& outRegions )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inImage | const Image& | Input image | |||
inRoi | Optional<const Region&> | NIL | Range of pixels to be processed | ||
inReferenceColors | const Array<Pixel>& | Colors to compare pixels to | |||
inMaxDifference | const float | 0.0 - | 5.0f | Maximal difference between pixel and reference color to be accepted | |
inDifferenceMultipliers | Optional<const Array<float>&> | NIL | Scales for maximum differences for each color | ||
inChromaAmount | float | 0.0 - 1.0 | 0.7f | Proportion of chromatic information in distance computation | |
inForceDisjointRegions | bool | Force output regions to be disjoint | |||
outRegions | Array<Region>& | Regions of pixels closest to colors |
Description
The operation finds regions of similar colors in RGB color space within inImage.
First, for each pixel of the input image its distance to each color in inReferenceColors is computed (see ColorDistanceImage function).
Then, for each reference color c, the function computes region of pixels that are closer to c than its corresponding threshold. In case inDifferenceMultipliers is Nil, threshold is equal to inMaxDifference. If inDifferenceMultipliers is not Nil, corresponding threshold is the product of inMaxDifference and the element of inDifferenceMultipliers that corresponds to c.
If flag inForceDisjointRegions is set to True, the regions are forced to be disjoint. In case a pixel has distance less than threshold for more than one color, distances are divided by thresholds and the minimum of ratios is taken. In particular, if the function works in one-threshold mode, the operation described above becomes simply minimum of distances.
Examples
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Inconsistent array sizes in SegmentImage_Color. |
DomainError | Reference color array size too big in SegmentImage_Color. |
See Also
- ColorDistance – Compares two pixels using chromatic and non-chromatic information. Assumes RGB color space.
- ColorDistanceImage – Compares each pixel with the specified color using chromatic and non-chromatic information.