00001 /*!@file Channels/ScorrChannel.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/ScorrChannel.H $ 00035 // $Id: ScorrChannel.H 7434 2006-11-11 02:15:19Z rjpeters $ 00036 // 00037 00038 #ifndef SCORRCHANNEL_H_DEFINED 00039 #define SCORRCHANNEL_H_DEFINED 00040 00041 #include "Channels/SingleChannel.H" 00042 00043 // ###################################################################### 00044 //! A spatial correlation channel 00045 /*! Spatial correlation is computed at every location between the 00046 local patch and other patches at a given radius from the local 00047 patch. Radius is given in saliency map pixels. Note that in this 00048 channel, high 'salience' means low spatial correlation, i.e., lots 00049 of change. CAUTION: this channel will throw a fatal exception if 00050 your LevelSpec contains more than one level or if that level is 00051 different from the maplevel or if the deltas are non-zero. */ 00052 class ScorrChannel : public SingleChannel 00053 { 00054 public: 00055 //! Construct with standard params. 00056 ScorrChannel(OptionManager& mgr); 00057 00058 //! Destructor 00059 virtual ~ScorrChannel(); 00060 00061 //! overload 00062 virtual bool outputAvailable() const; 00063 00064 protected: 00065 OModelParam<int> itsRadius; //!< Radius (in saliency map pixels) 00066 00067 //! special input function 00068 virtual void doInput(const InputFrame& inframe); 00069 00070 //! special output function 00071 virtual Image<float> getOutput(); 00072 00073 Image<float> itsMap; //!< our temporal correlation map 00074 }; 00075 00076 // ###################################################################### 00077 /* So things look consistent in everyone's emacs... */ 00078 /* Local Variables: */ 00079 /* indent-tabs-mode: nil */ 00080 /* End: */ 00081 00082 #endif // SCORRCHANNEL_H_DEFINED