00001 /*!@file Channels/GuidedSearch.H Guided Search aka biased saliency */ 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: Laurent Itti <itti@usc.edu> 00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Channels/GuidedSearch.H $ 00035 // $Id: GuidedSearch.H 10794 2009-02-08 06:21:09Z itti $ 00036 // 00037 00038 #ifndef CHANNELS_GUIDEDSEARCH_H_DEFINED 00039 #define CHANNELS_GUIDEDSEARCH_H_DEFINED 00040 00041 #include "Channels/ChannelVisitor.H" 00042 #include "rutz/shared_ptr.h" 00043 00044 class ParamMap; 00045 class ChannelBase; 00046 class SingleChannel; 00047 class ComplexChannel; 00048 00049 //! Implementation of Guided Search, aka biased saliency computation 00050 /*! A set of gains in a ParamMap is applied to the various submaps, 00051 subchannels, etc during saliency map computation. This allows to 00052 'guide search' (Wolfe, 1994) towards known targets (e.g., if the 00053 target is known to be red, crank up the gain on red-sensitive 00054 submaps or channels. */ 00055 class GuidedSearchBiaser : public ChannelVisitor { 00056 public: 00057 /// Construct with settings for the algorithm 00058 GuidedSearchBiaser(rutz::shared_ptr<ParamMap> pmap); 00059 00060 /// Virtual destructor 00061 virtual ~GuidedSearchBiaser(); 00062 00063 /// Visit the given ChannelBase node. 00064 virtual void visitChannelBase(ChannelBase& chan); 00065 00066 /// Visit the given SingleChannel node. 00067 virtual void visitSingleChannel(SingleChannel& chan); 00068 00069 /// Visit the given ComplexChannel node. 00070 virtual void visitComplexChannel(ComplexChannel& chan); 00071 00072 private: 00073 rutz::shared_ptr<ParamMap> itsPmap; 00074 }; 00075 00076 00077 // ###################################################################### 00078 /* So things look consistent in everyone's emacs... */ 00079 /* Local Variables: */ 00080 /* mode: c++ */ 00081 /* indent-tabs-mode: nil */ 00082 /* End: */ 00083 00084 #endif // CHANNELS_GUIDEDSEARCH_H_DEFINED