00001 /*!@file Channels/IntensityBandChannel.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/IntensityBandChannel.H $ 00035 // $Id: IntensityBandChannel.H 8160 2007-03-21 21:34:16Z rjpeters $ 00036 // 00037 00038 #ifndef INTENSITYBANDCHANNEL_H_DEFINED 00039 #define InINTENSITYBANDCHANNEL_H_DEFINED 00040 00041 #include "Channels/ComplexChannel.H" 00042 00043 class IntensityChannel; 00044 00045 // ###################################################################### 00046 //! A composite channel containing a set of intensity-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 IntensityBandChannel : public ComplexChannel 00052 { 00053 public: 00054 //! Construct with standard params 00055 IntensityBandChannel(OptionManager& mgr); 00056 00057 //! Destructor 00058 virtual ~IntensityBandChannel(); 00059 00060 //! Wraps ComplexChannel's subChan() and casts the result to IntensityChannel 00061 virtual IntensityChannel& 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 intensity bands 00070 OModelParam<float> itsSigma; //!< width of each intensity band 00071 00072 //! (re-)build our subchannels 00073 virtual void buildSubChans(); 00074 00075 //! IntensityBandChannel requires only the intensity image input 00076 virtual void doInput(const InputFrame& inframe); 00077 }; 00078 00079 // ###################################################################### 00080 /* So things look consistent in everyone's emacs... */ 00081 /* Local Variables: */ 00082 /* indent-tabs-mode: nil */ 00083 /* End: */ 00084 00085 #endif // INTENSITYBANDCHANNEL_H_DEFINED