00001 /*!@file Channels/MultiConvolveChannel.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/MultiConvolveChannel.H $ 00035 // $Id: MultiConvolveChannel.H 7434 2006-11-11 02:15:19Z rjpeters $ 00036 // 00037 00038 #ifndef MULTICONVOLVECHANNEL_H_DEFINED 00039 #define MULTICONVOLVECHANNEL_H_DEFINED 00040 00041 #include "Channels/ComplexChannel.H" 00042 00043 // ###################################################################### 00044 //! A generic multi-convolution channel 00045 /*! This channel reads a filter definition file from disk (text 00046 format) and builds a number of ConvolveChannel subchannels. In the 00047 current implementation, only 4 subchannels are supported, and their 00048 inputs will be the red, green, blue and yellow color components of 00049 the image as given by getRGBY(). Each subchannel will convolve its 00050 input using the convolution filter definition given in the text 00051 file. */ 00052 class MultiConvolveChannel : public ComplexChannel 00053 { 00054 public: 00055 //! Construct with standard params 00056 MultiConvolveChannel(OptionManager& mgr); 00057 00058 //! Destructor 00059 virtual ~MultiConvolveChannel(); 00060 00061 protected: 00062 NModelParam<std::string> itsFilterFname; //!< file name for the filters 00063 NModelParam<float> itsLumThresh; //!< Luminance threshold (see getRGBY()) 00064 00065 //! read filter definition and instantiate subchannels 00066 void start1(); 00067 00068 //! MultiConvolveChannel requires only color input 00069 virtual void doInput(const InputFrame& inframe); 00070 }; 00071 00072 // ###################################################################### 00073 /* So things look consistent in everyone's emacs... */ 00074 /* Local Variables: */ 00075 /* indent-tabs-mode: nil */ 00076 /* End: */ 00077 00078 #endif // MULTICONVOLVECHANNEL_H_DEFINED