NATO.0+55+3d modular, page 07/14
Analysis / Object Tracking

Image Analysis Objects

NATO incorporates several objects for analyzing and generating numerical information from your films and images. Check out the two examples below.

The first example demonstrates the `242.histo` object, which generates histograms of pixel intensities for the red, green and blue channels. `242.histo` outputs 256 possible intensities for each channel (x-axis), and graphs the number of occurrences of that intensity (e.g. the number of pixels in the image with that intensity) along the y-axis. In this case, I'm sending the (x,y) data to a user interface object to graph it as the movie plays, but obviously, you could use the information however you like -- for instance, you might adjust audio amplitude or filter envelopes based on the histogram data.

In the second example, you can see the `242.argb` object, as well as some of the data output properties of the `ekran` objects. `242.ekran04` (in fact, all of the `ekran`s) can be told to report cursor coordinates and rgb color values (in a range of 0-65535) for a particular pixel. You can see the numbers displayed below the `242.ekran04` object. I am sending the cursor coordinates to the `242.argb` object, which reports pixel intensities (in a range of 0-255) for alpha, red, green and blue channels at a particular (x,y) location. These numbers can be used for anything: controlling sound mix based on relative channel intensities, adjusting framerate and gamma based on (x,y) location of the cursor within an `ekran`, etc.

In the next example, you can see NATO's object tracking capabilities. In actuality, NATO tracks colors, not objects, with `242.pupille`. It sends the coordinates of the tracking box (visible in the example, although it can be turned off) through its outlet. A side note: STEIM's BigEye also tracks colors, rather than objects, in case you were wondering. With simple images, like the one shown, NATO performs competently -- check out this output movie, which shows NATO tracking the moon. More complex images, in which multiple areas contain similar color information, confuse NATO. However, you can subdivide the original image using the `242.decoupage` object and process regions separately to deal with this.

In this example, I'm using the rgb color tracking shown above (in the `242.ekran04` example with the fish picture) to specify the color parameters for `242.pupille`. The `scale` object is being used to convert the relatively large range of the `242.ekran04` rgb value output to the more modest range (0-255) used by `242.pupille`. Note that I specify the red, green and blue values independently. The `fuzzi` command is used to specify a +/- range for the object, so that close colors will be considered part of the color being tracked. With the `fuzzi` parameter set to low numbers, NATO is extremely discerning, and can distinguish between very similar colors. The `fuzzi` parameter can be set independently for red, green and blue channels.

Two other products should be noted here, both of which were developed for object tracking within Max. Eric Singer's Cyclops, and David Rokeby's SoftVNS 2 are both advanced implementations of tracking technology. At the time of this writing, both packages are in late beta stages, but are available for testing. If your primary interest in Max-based visual technologies lies in computer vision, you'd be well-advised to investigate them.

back
forward
top

all materials on this site (text, images, etc.) © 2000-2001 Jeremy Bernstein

legal information