Purpose: Realtime color segmentation (C++, Linux)

Library for realtime (autor reached 320×240 @ 30fps on a 350MHz machine) color classification and segmentation.

Consists of several steps:

  1. The image is transformed to the YUV (Brightness, Chromacity) color space where object color can be described as a cone with a wide span in the brightness dimension.
  2. The specified color thresholds are applied resulting to a 32-bit image where each bit denotes color class membership:
    • The cone is described as an intersection of three subspaces described by three binary tables.
    • If 32 such binary tables are stored in different bits of one int table, one can track at most 32 different colors at a time using just 2 binary and operators on every pixel.
  3. Pixels of one class are RLE encoded and joined to segments using a union find with path compression algorithm.
  4. Segments may be joined using a density-based merging (close segments of the same color become one).
  5. Some statistics may be performed on the resulting segments (area, centroid, average color etc.).

The algorithm is described in this paper.

  omni/cmvision.txt · Last modified: 2005/09/23 12:00
Recent changes RSS feed Driven by DokuWiki