MultiColorBandChannel.H

Go to the documentation of this file.
00001 /*!@file Channels/MultiColorBandChannel.H */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file:
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Channels/MultiColorBandChannel.H $
00035 // $Id: MultiColorBandChannel.H 8160 2007-03-21 21:34:16Z rjpeters $
00036 //
00037 
00038 #ifndef MULTICOLORBANDCHANNEL_H_DEFINED
00039 #define MULTICOLORBANDCHANNEL_H_DEFINED
00040 
00041 #include "Channels/ComplexChannel.H"
00042 
00043 class ColorBandChannel;
00044 
00045 // ######################################################################
00046 //! A composite channel containing a set of color-band channels
00047 /*! This is an example of a homogeneous complex channel. Thus, the
00048   JetSpec representation will have an index for the subchannel number,
00049   and further indices for the various Jet components (which are
00050   identical for all subchannels). */
00051 class MultiColorBandChannel : public ComplexChannel
00052 {
00053 public:
00054   //! Construct with standard params
00055   MultiColorBandChannel(OptionManager& mgr);
00056 
00057   //! Destructor
00058   virtual ~MultiColorBandChannel();
00059 
00060   //! Wraps ComplexChannel's subChan() and casts the result to ColorBandChannel
00061   virtual ColorBandChannel& band(const uint idx) const;
00062 
00063   //! Overload so that we can reconfigure when our params get changed
00064   virtual void paramChanged(ModelParamBase* const param,
00065                             const bool valueChanged,
00066                             ParamClient::ChangeStatus* status);
00067 
00068 protected:
00069   OModelParam<uint> itsNumBands;    //!< number of color bands
00070   OModelParam<uint> itsSatBands;    //!< number of saturation bands
00071   OModelParam<float> itsHueSigma;   //!< width of each hue band
00072   OModelParam<float> itsSatSigma;   //!< width of each saturation band
00073 
00074   //! (re-)build our subchannels
00075   virtual void buildSubChans();
00076 
00077   //! ColorBandChannel requires only the color image input
00078   virtual void doInput(const InputFrame& inframe);
00079 };
00080 
00081 // ######################################################################
00082 /* So things look consistent in everyone's emacs... */
00083 /* Local Variables: */
00084 /* indent-tabs-mode: nil */
00085 /* End: */
00086 
00087 #endif // MULTICOLORBANDCHANNEL_H_DEFINED
Generated on Sun May 8 08:40:22 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3