RegionGenerator Class Reference#include <RegionGenerator.h>
Inheritance diagram for RegionGenerator:
[legend]List of all members.
Detailed Description
Connects regions of CMVision format runs in RLEGenerator.
Uses the CMVision library for main processing.
getImage() will return an array of RegionGenerator::region_stats - one entry per color. This will give you some statistics on colors present, as well as the head of a linked list through regions of each color in the image.
Uses fields in the RLEGenerator's runs to store region information. This means we don't have to make an extra copy of the data, but unfortunately also means these two stages are tightly coupled...
Similarly, this also accesses the color information of the runs, so the events received must be a SegmentedColorFilterBankEvents so that it can interpret the color information. Some statistical information will then be stored in the color struct to report the min region area, max region area, and number of regions.
Definition at line 28 of file RegionGenerator.h.
|
Public Types |
typedef CMVision::region | region |
| using the CMVision library's region information
|
typedef CMVision::color_class_state | region_stats |
| using the CMVision library's color struct to store the region info
|
Public Member Functions |
| RegionGenerator (EventBase::EventGeneratorID_t gid, unsigned int sid, unsigned int mysid) |
| constructor
|
virtual | ~RegionGenerator () |
| destructor
|
virtual void | freeCaches () |
| deletes storage of cached images and marks it invalid
|
virtual void | processEvent (const EventBase &event) |
| see class notes above for what data this can handle
|
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 Types |
typedef SegmentedColorFilterBankEvent::color_class_state | color_class_state |
| use the same color info as SegmentedColorFilterBankEvent (since that's what's supplying the color info)
|
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 unsigned char * | createImageCache (unsigned int layer, unsigned int chan) const |
| create new image data storage area for the cache - this called by getImage() only when the corresponding entry in images is NULL
|
virtual void | calcImage (unsigned int layer, unsigned int chan) const |
| should calculate new image data, called by getImage() only when imageValids indicates the image being requested is dirty (and only after getImage() has already called createImageCache())
|
virtual void | destruct () |
| deletes the arrays
|
Protected Attributes |
unsigned int | srcNumColors |
| number of colors available (from src->src, which should be SegmentedColorGenerator...)
|
color_class_state * | srcColors |
| colors information (from src->src, which should be SegmentedColorGenerator...)
|
region *** | regions |
| data storage for region information
|
Static Protected Attributes |
const unsigned int | MAX_REGIONS = 176*144/16 |
| maximum number of regions, value is from historical Vision sources
|
Private Member Functions |
| RegionGenerator (const RegionGenerator &fbk) |
| don't call
|
const RegionGenerator & | operator= (const RegionGenerator &fbk) |
| don't call
|
Member Typedef Documentation
Constructor & Destructor Documentation
Member Function Documentation
void RegionGenerator::calcImage |
( |
unsigned int |
layer, |
|
|
unsigned int |
chan |
|
) |
const [protected, virtual] |
|
unsigned char * RegionGenerator::createImageCache |
( |
unsigned int |
layer, |
|
|
unsigned int |
chan |
|
) |
const [protected, virtual] |
|
|
create new image data storage area for the cache - this called by getImage() only 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 191 of file RegionGenerator.cc.
Referenced by LoadBuffer(). |
void RegionGenerator::destruct |
( |
|
) |
[protected, virtual] |
|
void RegionGenerator::freeCaches |
( |
|
) |
[virtual] |
|
unsigned int RegionGenerator::getBinSize |
( |
|
) |
const [virtual] |
|
|
calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.
- Returns:
- number of bytes read/written, 0 if error (or empty)
Reimplemented from FilterBankGenerator.
Definition at line 45 of file RegionGenerator.cc. |
std::string RegionGenerator::getClassDescription |
( |
|
) |
[inline, static] |
|
|
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 42 of file RegionGenerator.h. |
unsigned int RegionGenerator::LoadBuffer |
( |
const char |
buf[], |
|
|
unsigned int |
len |
|
) |
[virtual] |
|
void RegionGenerator::processEvent |
( |
const EventBase & |
event |
) |
[virtual] |
|
unsigned int RegionGenerator::SaveBuffer |
( |
char |
buf[], |
|
|
unsigned int |
len |
|
) |
const [virtual] |
|
|
Save to a given buffer.
- Parameters:
-
| buf | pointer to the memory where you should begin writing |
| len | length of buf available. (this isn't all yours, constrain yourself to what you returned in getBinSize() ) |
- Returns:
- the number of bytes actually used
Reimplemented from FilterBankGenerator.
Definition at line 128 of file RegionGenerator.cc. |
void RegionGenerator::setNumImages |
( |
unsigned int |
nLayers, |
|
|
unsigned int |
nChannels |
|
) |
[protected, virtual] |
|
|
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.
The default implementation is a no-op if(numLayers==nLayers && numChannels==nChannels)
Reimplemented from FilterBankGenerator.
Definition at line 178 of file RegionGenerator.cc. |
Member Data Documentation
The documentation for this class was generated from the following files:
|