Previous: A Simple Application for Color Naming, Pointing Out, and Selecting Up: A Simple Application for Color Naming, Pointing Out, and Selecting Next: Constancy
Outline
For ease of experimentation, the application consists of two separate
parts, one concerned with selection and display of samples from images, and
the other concerned with the actual color perception and categorization
model (Figure ).
The display program runs under X Windows, and allows one to display a
24-bit RGB image (a TrueColor Visual, in X lingo) acquired from, for
instance, a camera and frame grabber, or a color scanner. It also allows
one to select samples (blobs) of a certain pre-defined size (currently
pixels) from the image using the mouse, which will be passed
to the categorization program. It can subsample the entire image using the
same blob size, and pass the result to the categorization program. Finally,
it can draw boxes around blobs, whose center coordinates it gets from the
categorization program.
The categorization program is a collection of Mathematica functions that
can
- Name the (average) color of a blob pointed out on the image
being displayed by the display program, and provide a goodness value.
- Point out examples of a named color category on the image, and
provide a goodness value.
- Select one from a number of samples whose color best fits a given
category, specified by name.
The names returned can be simple or complex, and the best candidates
can be returned. The category membership threshold may be
specified, as well as the underlying color space to use. The names
specified for the pointing-out function can be simple or complex as well,
and the threshold can be specified. The function can either return
(point to) any examples (the first exceeding the threshold) or the best
examples. The underlying color space to be used can be specified as
well. The select function always points to the best example of the
specified category (name) within the set of samples provided, using a
specifiable underlying color space. It will ask the user to provide it with
a set of samples from the image first, to get around the absence of any
image segmentation or object recognition algorithms.