Homepage | Demos | Overview | Downloads | Tutorials | Reference | Credits |
#include <CDTGenerator.h>
Inheritance diagram for CDTGenerator:
The Aibo has hardware-level color segmentation based on rectangular regions of UV color space. This less flexible than the CMVision segmentation routines, which allow arbitrary shapes in color space, but the CDT (Color Detection Table) implementation has the major advantage of being done in hardware.
This class doesn't do any processing of its own, it simply provides access to the CDT segmented images generated by the system.
To use this, you will first have to send the system the color regions that define the CDT. You'll need to look in the OPEN-R documentation regarding the OCdtVectorData data structure and the New/Set/DeleteCdtVectorData() functions.
For now, the color information in the Segmented Color Events will be NULL, so you won't be able to connect it to the rest of the CMVision stages unless you fill it in. Filling in the color information will require modifications of this source - I'm consciously cutting some corners to get this out the door sooner. Hopefully someone who needs this capability can pick up where I left off. It would be nice if someone made a version of CMVision's .col file format which also held the CDT information so the whole thing could be set up with one file load.
Only the actual layers sent by the system will be referenced - no double resolution layer. Much like RawCameraGenerator, the extra subsampled images are simply using a larger interleave value. If you want the images in continuous memory, you'll need to pass this through a de-interleaver stage.
Only one channel is available.
Definition at line 44 of file CDTGenerator.h.
Public Types | |
enum | channel_id_t { CHAN_CDT, NUM_CHANNELS } |
holds id values for specifying image channel/bands More... | |
Public Member Functions | |
CDTGenerator (unsigned int numRawLayers, unsigned int numCalcLayers, EventBase::EventGeneratorID_t gid, unsigned int sid, unsigned int mysid) | |
constructor | |
virtual | ~CDTGenerator () |
destructor | |
virtual void | processEvent (const EventBase &event) |
called with system's image info | |
virtual void | freeCaches () |
the memory for all layers was allocated by system, so we just set them to NULL before calling FilterBankGenerator::freeCaches() so it won't try to delete them | |
virtual unsigned int | getBinSize () const |
calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work. | |
virtual unsigned int | LoadBuffer (const char buf[], unsigned int len) |
virtual unsigned int | SaveBuffer (char buf[], unsigned int len) const |
Save to a given buffer. | |
Static Public Member Functions | |
std::string | getClassDescription () |
Gives a short description of what this class of behaviors does... you should override this (but don't have to). | |
Protected Member Functions | |
virtual void | setNumImages (unsigned int nLayers, unsigned int nChannels) |
resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor | |
virtual void | setDimensions () |
resets the current width, height, stride, and skip for all of the layers | |
virtual unsigned char * | createImageCache (unsigned int layer, unsigned int chan) const |
create new image data storage area for the cache - this is only called when the corresponding entry in images is NULL | |
virtual void | calcImage (unsigned int layer, unsigned int chan) const |
should calculate new image data, only called when imageValids indicates the image being requested is dirty | |
virtual void | destruct () |
deletes the arrays | |
Protected Attributes | |
unsigned int | numRealLayers |
the number of actual layers to expect from the system | |
unsigned char ** | layers |
an array of pointers to actual system memory for each layer | |
const OFbkImageInfo ** | imageInfos |
information about image properties | |
Private Member Functions | |
CDTGenerator (const CDTGenerator &fbk) | |
don't call | |
const CDTGenerator & | operator= (const CDTGenerator &fbk) |
don't call |
|
holds id values for specifying image channel/bands
Definition at line 55 of file CDTGenerator.h. |
|
constructor
Definition at line 14 of file CDTGenerator.cc. |
|
destructor
Definition at line 20 of file CDTGenerator.cc. |
|
don't call
|
|
should calculate new image data, only called when imageValids indicates the image being requested is dirty This is where you'll want to put your user-specific code for calculating the image data Implements FilterBankGenerator. Definition at line 174 of file CDTGenerator.cc. |
|
create new image data storage area for the cache - this is only called when the corresponding entry in images is NULL You should return the pointer you want stored in images to be returned by any calls to getFirstRow. Interpretation of the data it points to is dependant on the the generator which creates it Implements FilterBankGenerator. Definition at line 169 of file CDTGenerator.cc. |
|
deletes the arrays
Reimplemented from FilterBankGenerator. Definition at line 226 of file CDTGenerator.cc. Referenced by ~CDTGenerator(). |
|
the memory for all layers was allocated by system, so we just set them to NULL before calling FilterBankGenerator::freeCaches() so it won't try to delete them
Reimplemented from FilterBankGenerator. Definition at line 144 of file CDTGenerator.cc. Referenced by setDimensions(), and ~CDTGenerator(). |
|
calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.
Reimplemented from FilterBankGenerator. Definition at line 72 of file CDTGenerator.cc. |
|
Gives a short description of what this class of behaviors does... you should override this (but don't have to).
Reimplemented from BehaviorBase. Definition at line 52 of file CDTGenerator.h. |
|
The LoadBuffer() functions of the included subclasses aren't tested, so don't assume they'll work without a little debugging... Reimplemented from FilterBankGenerator. |
|
don't call
|
|
called with system's image info The const casts in this function are regretable but necessary since the OPEN-R OFbkImage constructor requires mutable arguments, even though it shouldn't be modifying the data Reimplemented from FilterBankGenerator. Definition at line 30 of file CDTGenerator.cc. |
|
Save to a given buffer.
Reimplemented from FilterBankGenerator. Definition at line 89 of file CDTGenerator.cc. |
|
resets the current width, height, stride, and skip for all of the layers
Definition at line 129 of file CDTGenerator.cc. Referenced by processEvent(). |
|
resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor In general, it isn't expected that FilterBankGenerator's should necessarily be dynamically resizeable (although it would be nice), which is why this isn't public. If yours is, just add some pubic accessor functions which call this. In general, the included subclasses should be able to handle being resized, but there's no reason to do so since the system won't be changing its available resolutions at run time. Reimplemented from FilterBankGenerator. Definition at line 155 of file CDTGenerator.cc. Referenced by CDTGenerator(). |
|
information about image properties
Definition at line 85 of file CDTGenerator.h. Referenced by calcImage(), destruct(), processEvent(), setDimensions(), and setNumImages(). |
|
an array of pointers to actual system memory for each layer
Definition at line 84 of file CDTGenerator.h. Referenced by calcImage(), destruct(), processEvent(), and setNumImages(). |
|
the number of actual layers to expect from the system
Definition at line 82 of file CDTGenerator.h. Referenced by calcImage(), processEvent(), setDimensions(), and setNumImages(). |
Tekkotsu v2.0 |
Generated Wed Jan 21 03:23:05 2004 by Doxygen 1.3.4 |