SwisTrack/Components/BlobDetectionTwoColors

Description
This component detects markers consisting of two blobs (of different color) on a color image. The particle position is the point between the two blob centers, while the particle orientation is pointing towards color 1.

For both colors, the algorithm first selects all pixels falling in to the following cube in RGB color space:

$$|r - c_r| < t_r$$ $$|g - c_g| < t_g$$ $$|b - c_b| < t_b$$

where $$(c_r, c_g, c_b)$$ denotes the reference color, and $$t_r$$, $$t_g$$ and $$t_b$$ the thresholds for the respective channels. In a second step, the algorithm applies blob detection on the thresholded image. Both the color subtracted image and the thresholded image can be visualized.

Once the blobs of both colors have been extracted, close lying blobs of different color are combined to particles.

Input


A color image with markers consisting of two blobs of different color. Both colors need to be sufficiently different from any color appearing in the background. (A background subtraction component or a mask component may be useful to get rid of unwanted areas.)

Output


Particles, with the center being between the two blobs, and the orientation pointing towards the blob of color 1.

Max. particles
Maximum number of particles to detect. Note that the algorithm first detects this many red and green blobs, and then matches them. Hence, if there are stray red or green areas in your image (not part of a marker), you should choose a number of particles that is slightly higher than the number of markers you deploy.

Max. distance
The maximum distance between the center of the red blob and the center of the green blob. Blobs that are farther away from each other are considered not being part of the same marker.

This distance is also used to eliminate stray blobs in the neighborhood of red or green blobs. More precisely, within any disk of this diameter (not radius), only the biggest red (resp. green) blob is detected.

Output Parameters
The parameters of the output blobs can be choosen as the parameters of the first colored blob, the second one, or the combination of those (i.e. area added, centers averaged etc.)

Color 1 and 2
The reference color ($$c_r, c_g, c_b$$, see description above).

Threshold R, G and B (for color 1 and 2)
The thresholds $$t_r$$, $$t_g$$ and $$t_b$$ (see description above).

Selection by area (for color 1 and 2)
Check this to base blob selection on the blob area.

Min. blob size (for color 1 and 2)
Minimum area in pixels of a blob to select.

Max. blob size (for color 1 and 2)
Maximum area in pixels of a blob to select.

Selection by compactness (for color 1 and 2)
Check this to base blobs section on the compactness of the blob.

Min. compactness (for color 1 and 2)
Minimum compactness (0..1) of a blob to select.

Max. compactness (for color 1 and 2)
Maximum compactness (0..1) of a blob to select.