Visual Cortex of a Beobot. More...
#include <Beobot/BeobotVisualCortex.H>
Public Member Functions | |
BeobotVisualCortex () | |
constructor | |
void | init (const int imgw, const int imgh, const int lev_min, const int lev_max, const int delta_min, const int delta_max, const int smlev, const int nborient, const MaxNormType normtype, const int jlev, const int jdepth, const int nbneig, nub::soft_ref< Beowulf > beow) |
initialization | |
void | newVisualInput (Image< PixRGB< byte > > &scene) |
present a new visual input from an existing image | |
Image< PixRGB< byte > > * | getScenePtr () |
get pointer to scene image, so that we can directly grab it | |
void | process (const int frame) |
call this to execute all the low-level processing on current scene | |
void | processStart (const int frame) |
start parallel processing by sending off current frame | |
void | processEnd (const int frame) |
end parallel process by receiving results | |
void | singleCPUprocess (const int frame) |
not normally used; use process() instead | |
void | masterProcess (const int frame) |
not normally used; use process() instead | |
void | slaveProcess () |
Call this in an infinite loop on slaves to process & return incoming maps. | |
void | masterCollect () |
not normally used; use process() instead | |
void | getWinner (Point2D< int > &win) const |
get most salient location: | |
void | initSprings (bool initPosMasses) |
initialize clustering with "spring method" | |
void | iterateSprings (const float dt) |
iterate clustering with "spring method" | |
void | getClusteredImage (Image< PixRGB< byte > > &clusteredImage, Point2D< int > &supposedTrackCentroid, const Point2D< int > &previousTrackCentroid) |
returns the clustered image and the position of the track centroid | |
void | getInputSize (Point2D< int > &size) |
get size of input image | |
void | getPositions (Image< PixRGB< byte > > &img, const int zoom) |
get mass positions |
Visual Cortex of a Beobot.
this is no longer derived from VisualCortex it can be used with one CPU or SMP systems
Definition at line 55 of file BeobotVisualCortex.H.
BeobotVisualCortex::BeobotVisualCortex | ( | ) |
constructor
Definition at line 57 of file BeobotVisualCortex.C.
void BeobotVisualCortex::getClusteredImage | ( | Image< PixRGB< byte > > & | clusteredImage, | |
Point2D< int > & | supposedTrackCentroid, | |||
const Point2D< int > & | previousTrackCentroid | |||
) |
returns the clustered image and the position of the track centroid
Definition at line 435 of file BeobotVisualCortex.C.
References ImageSpring< T >::getClusteredImage().
Referenced by Beobot::intermediateLevel().
void BeobotVisualCortex::getInputSize | ( | Point2D< int > & | size | ) | [inline] |
get size of input image
Definition at line 165 of file BeobotVisualCortex.H.
References ASSERT, Image< T >::getHeight(), Image< T >::getWidth(), Point2D< T >::i, and Image< T >::initialized().
Referenced by Beobot::intermediateLevel().
get mass positions
Definition at line 446 of file BeobotVisualCortex.C.
References ImageSpring< T >::getPositions().
get pointer to scene image, so that we can directly grab it
Definition at line 98 of file BeobotVisualCortex.C.
Referenced by Beobot::getRetinaPtr().
void BeobotVisualCortex::getWinner | ( | Point2D< int > & | win | ) | const |
get most salient location:
Definition at line 422 of file BeobotVisualCortex.C.
References Point2D< T >::i.
Referenced by Beobot::getWinner().
void BeobotVisualCortex::init | ( | const int | imgw, | |
const int | imgh, | |||
const int | lev_min, | |||
const int | lev_max, | |||
const int | delta_min, | |||
const int | delta_max, | |||
const int | smlev, | |||
const int | nborient, | |||
const MaxNormType | normtype, | |||
const int | jlev, | |||
const int | jdepth, | |||
const int | nbneig, | |||
nub::soft_ref< Beowulf > | beow | |||
) |
initialization
use beow=NULL for single-CPU processing
Definition at line 61 of file BeobotVisualCortex.C.
References JetSpec::addIndexRange(), Image< T >::beginw(), BY, Image< T >::endw(), ImageSpring< T >::init(), INTENS, rutz::make_shared(), ORI, JetSpec::print(), RAW, Image< T >::resize(), and RG.
Referenced by Beobot::Beobot().
void BeobotVisualCortex::initSprings | ( | bool | initPosMasses | ) |
initialize clustering with "spring method"
Definition at line 426 of file BeobotVisualCortex.C.
References ImageSpring< T >::initClustering().
Referenced by Beobot::intermediateLevel().
void BeobotVisualCortex::iterateSprings | ( | const float | dt | ) |
iterate clustering with "spring method"
Definition at line 431 of file BeobotVisualCortex.C.
References ImageSpring< T >::computePos().
Referenced by Beobot::intermediateLevel().
void BeobotVisualCortex::masterCollect | ( | ) |
not normally used; use process() instead
Definition at line 330 of file BeobotVisualCortex.C.
References Image< T >::beginw(), BY, COLOR, FLICKER, TCPmessage::getElementFloatIma(), Image< T >::getHeight(), Image< T >::getWidth(), INTENS, ORI, RAW, and RG.
Referenced by process(), and processEnd().
void BeobotVisualCortex::masterProcess | ( | const int | frame | ) |
not normally used; use process() instead
Definition at line 225 of file BeobotVisualCortex.C.
References TCPmessage::addImage(), ASSERT, getRGBY(), lum, TCPmessage::reset(), and TCPmessage::setAction().
Referenced by process(), and processStart().
present a new visual input from an existing image
Definition at line 94 of file BeobotVisualCortex.C.
References Image< T >::getHeight(), and Image< T >::getWidth().
Referenced by Beobot::newVisualInput().
void BeobotVisualCortex::process | ( | const int | frame | ) |
call this to execute all the low-level processing on current scene
This method will automatically parallelize the processing if a non-NULL beowulf was passed at initialization. However, it will call processStart() and processEnd() in sequence, waiting for the results to be ready before returning. It may be a better idea to separately call processStart(), do something, then processEnd(). For single-CPU operation, process() is the only option.
Definition at line 102 of file BeobotVisualCortex.C.
References Image< T >::clear(), findMax(), nub::soft_ref< T >::get(), Point2D< T >::i, masterCollect(), masterProcess(), maxNormalize(), and singleCPUprocess().
Referenced by Beobot::lowLevel().
void BeobotVisualCortex::processEnd | ( | const int | frame | ) |
end parallel process by receiving results
Definition at line 137 of file BeobotVisualCortex.C.
References Image< T >::clear(), findMax(), Timer::get(), Point2D< T >::i, masterCollect(), and maxNormalize().
Referenced by Beobot::lowLevelEnd().
void BeobotVisualCortex::processStart | ( | const int | frame | ) |
start parallel processing by sending off current frame
Definition at line 129 of file BeobotVisualCortex.C.
References masterProcess().
Referenced by Beobot::lowLevelStart().
void BeobotVisualCortex::singleCPUprocess | ( | const int | frame | ) |
not normally used; use process() instead
Definition at line 160 of file BeobotVisualCortex.C.
References Image< T >::beginw(), buildPyrGaussian(), buildPyrOriented(), BY, Image< T >::getHeight(), getRGBY(), Image< T >::getWidth(), Point2D< T >::i, Image< T >::initialized(), INTENS, ORI, RAW, Image< T >::resize(), RG, and Image< T >::setVal().
Referenced by process().
void BeobotVisualCortex::slaveProcess | ( | ) |
Call this in an infinite loop on slaves to process & return incoming maps.
Definition at line 253 of file BeobotVisualCortex.C.
References Gaussian5, TCPmessage::getElementByteIma(), Image< T >::initialized(), and Oriented5.