Retinex.H

Go to the documentation of this file.
00001 /*!@file Image/Retinex.H Retinex color-correction algorithm */
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: Rob Peters <rjpeters at usc dot edu>
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Image/Retinex.H $
00035 // $Id: Retinex.H 9412 2008-03-10 23:10:15Z farhan $
00036 //
00037 
00038 #ifndef IMAGE_RETINEX_H_DEFINED
00039 #define IMAGE_RETINEX_H_DEFINED
00040 
00041 #include "Image/Image.H"
00042 
00043 template <class T> class ImageSet;
00044 
00045 /// Get the recommended pyramid depth for the given input dims
00046 size_t retinexDepth(const Dims& dims);
00047 
00048 /// Build a retinex pyramid of the given depth using niter iterations
00049 /** The input is expected to be in log scale, and the output will also
00050     be in log scale.
00051 
00052     This implementation is based on "McCann99" algorithm described in
00053 
00054     Brian Funt, Florian Ciurea, and John McCann "Retinex in Matlab,"
00055     Proceedings of the IS&T/SID Eighth Color Imaging Conference: Color
00056     Science, Systems and Applications, 2000, pp 112-121
00057 
00058     The paper and matlab code are published here:
00059 
00060     http://www.cs.sfu.ca/~colour/publications/IST-2000/
00061     http://www.cs.sfu.ca/~colour/publications/IST-2000/retinex_mccann99.m
00062  */
00063 template <class T>
00064 ImageSet<T> buildPyrRetinexLog(const Image<T>& L,
00065                                const size_t depth, const int niter,
00066                                const Rectangle& outrect);
00067 
00068 /// Like above but with the output rectangle set to the full size of L
00069 template <class T>
00070 ImageSet<T> buildPyrRetinexLog(const Image<T>& L,
00071                                const size_t depth, const int niter)
00072 {
00073   return buildPyrRetinexLog(L, depth, niter,
00074                             Rectangle(Point2D<int>(0,0), L.getDims()));
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 // IMAGE_RETINEX_H_DEFINED
Generated on Sun May 8 08:05:15 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3