Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SoxChannel Class Reference

#include <Channels/SoxChannel.H>

Inheritance diagram for SoxChannel:

Inheritance graph
[legend]
Collaboration diagram for SoxChannel:

Collaboration graph
[legend]
List of all members.

Detailed Description

A short-range orientation interactions channel.

This class implements a pool of orientation-tuned units whose responses are shaped by divisive inhibition in proportion to population activity.

Definition at line 48 of file SoxChannel.H.

Public Member Functions

 SoxChannel (OptionManager &mgr)
 Construct.
virtual ~SoxChannel ()
 Virtual destructor.
uint numScales () const
 Get the number of scales used.
Image< float > getLinearResponse (int ori, int scl)
 Get the linear response of the units for a given orientation+scale.
Image< float > getNonlinearResponse (int ori, int scl)
 Get the non-linear response of the units for a given orientation+scale.
nub::ref< GaborChannelgabor (const uint idx) const
 Wraps ComplexChannel's subChan() and casts the result to GaborChannel.

Protected Member Functions

void buildSubChans ()
 (re-)build our subchannels
virtual void doInput (const InputFrame &inframe)
 SoxChannel requires only luminance input.
virtual Image< float > combineOutputs ()
 Combine all of the nonlinear responses.
virtual void killCaches ()
 Clear our cached inhibitory pool maps.
virtual void paramChanged (ModelParamBase *const param, const bool valueChanged, ParamClient::ChangeStatus *status)
 Overload so that we can reconfigure when our params get changed.

Protected Attributes

OModelParam< uintitsNumOrients
 number of Gabor subchannels
OModelParam< double > thetaPoolWidth
OModelParam< double > omegaPoolWidth
OModelParam< double > inhibExponent
OModelParam< double > excitExponent
OModelParam< double > semiSaturation
OModelParam< double > cutoff

Classes

struct  CacheElem


Constructor & Destructor Documentation

SoxChannel::SoxChannel OptionManager mgr  ) 
 

Construct.

Definition at line 111 of file SoxChannel.C.

References buildSubChans(), and OptionManager::requestOptionAlias().

SoxChannel::~SoxChannel  )  [virtual]
 

Virtual destructor.

Definition at line 175 of file SoxChannel.C.


Member Function Documentation

void SoxChannel::buildSubChans  )  [protected]
 

(re-)build our subchannels

Definition at line 129 of file SoxChannel.C.

References ComplexChannel::addSubChan(), ModelComponent::getManager(), OModelParam< T >::getVal(), itsNumOrients, LINFO, makeSharedComp(), MC_RECURSE, and ComplexChannel::removeAllSubChans().

Referenced by paramChanged(), and SoxChannel().

Image< float > SoxChannel::combineOutputs  )  [protected, virtual]
 

Combine all of the nonlinear responses.

Reimplemented from ComplexChannel.

Definition at line 283 of file SoxChannel.C.

References ComplexChannel::getMapDims(), getNonlinearResponse(), OModelParam< T >::getVal(), ComplexChannel::itsNormType, maxNormalize(), MAXNORMMAX, MAXNORMMIN, ComplexChannel::numChans(), numScales(), rescale(), VCXNORM_MAXNORM, and ZEROS.

void SoxChannel::doInput const InputFrame inframe  )  [protected, virtual]
 

SoxChannel requires only luminance input.

Implements ChannelBase.

Definition at line 183 of file SoxChannel.C.

References ASSERT, gabor(), InputFrame::grayFloat(), Image< T >::initialized(), LINFO, and ComplexChannel::numChans().

nub::ref< GaborChannel > SoxChannel::gabor const uint  idx  )  const
 

Wraps ComplexChannel's subChan() and casts the result to GaborChannel.

Definition at line 171 of file SoxChannel.C.

References ComplexChannel::subChan().

Referenced by doInput(), getLinearResponse(), getNonlinearResponse(), and numScales().

Image< float > SoxChannel::getLinearResponse int  ori,
int  scl
 

Get the linear response of the units for a given orientation+scale.

Definition at line 196 of file SoxChannel.C.

References ASSERT, gabor(), and Image< T >::initialized().

Referenced by getNonlinearResponse().

Image< float > SoxChannel::getNonlinearResponse int  ori,
int  scl
 

Get the non-linear response of the units for a given orientation+scale.

This is (rougly speaking) given by a power of the linear response, divided by an inhibitory term that pools over all orientations and scales.

Definition at line 204 of file SoxChannel.C.

References ASSERT, Image< T >::clear(), cutoff, excitExponent, exp(), gabor(), Image< T >::getDims(), ChannelBase::getInputDims(), getLinearResponse(), OModelParam< T >::getVal(), Image< T >::getWidth(), Image< T >::initialized(), inplaceAddWeighted(), LDEBUG, LINFO, log(), NO_INIT, ComplexChannel::numChans(), numScales(), omegaPoolWidth, semiSaturation, squareOf(), thetaPoolWidth, toPower(), and Dims::w().

Referenced by combineOutputs().

void SoxChannel::killCaches  )  [protected, virtual]
 

Clear our cached inhibitory pool maps.

Reimplemented from ComplexChannel.

Definition at line 306 of file SoxChannel.C.

References ComplexChannel::killCaches().

uint SoxChannel::numScales  )  const
 

Get the number of scales used.

Definition at line 179 of file SoxChannel.C.

References gabor().

Referenced by combineOutputs(), and getNonlinearResponse().

void SoxChannel::paramChanged ModelParamBase *const   param,
const bool  valueChanged,
ParamClient::ChangeStatus status
[protected, virtual]
 

Overload so that we can reconfigure when our params get changed.

Reimplemented from ModelComponent.

Definition at line 157 of file SoxChannel.C.

References buildSubChans(), OModelParam< T >::getVal(), itsNumOrients, ComplexChannel::numChans(), and ModelComponent::paramChanged().


Member Data Documentation

OModelParam<uint> SoxChannel::itsNumOrients [protected]
 

number of Gabor subchannels

Definition at line 73 of file SoxChannel.H.

Referenced by buildSubChans(), and paramChanged().


The documentation for this class was generated from the following files:
Generated on Sun Nov 22 13:46:36 2009 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4