CudaImageSetOps.H

Go to the documentation of this file.
00001 /*!@file CUDA/CudaImageSetOps.H Free functions operating on sets of images
00002  */
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2001 by the //
00005 // 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/CUDA/CudaImageSetOps.H $
00035 // $Id: CudaImageSetOps.H 12962 2010-03-06 02:13:53Z irock $
00036 //
00037 
00038 #ifndef CUDAIMAGESET_OPS_H_DEFINED
00039 #define CUDAIMAGESET_OPS_H_DEFINED
00040 
00041 #include "Util/Types.H" // for uint
00042 
00043 class Dims;
00044 template <class T> class CudaImage;
00045 template <class T> class CudaImageSet;
00046 template <class T> class Range;
00047 
00048 // ############################################################
00049 // ############################################################
00050 /*! @name CudaImageSet processing functions
00051 
00052     Not all of these functions are templates, simply because alternate
00053     versions aren't currently needed.
00054 */
00055 //@{
00056 
00057 //! Returns true if all images in the set are the same size.
00058 /*! Also returns true for the empty set. */
00059 template <class T>
00060 bool cudaIsHomogeneous(const CudaImageSet<T>& x);
00061 
00062 //! Check whether the pyramid is dyadic.
00063 /*! A dyadic pyramid is one in which each level is one half the width
00064     and one half the height of the preceding level. NOTE that this
00065     function is defined here, in CudaImageSetOps.H, rather than in
00066     Pyramid_Ops.H, in order to avoid a cyclic dependency between those
00067     two modules. CudaImageSetOps needs isDyadic() in order to implement
00068     makeImageArray(). */
00069 template <class T>
00070 bool cudaIsDyadic(const CudaImageSet<T>& pyr);
00071 
00072 
00073 //! Make an CudaImageSet from the s'th level from each of the N input sets.
00074 /*! This is useful, for example, in transforming an array of CudaImageSets
00075     from multiple-scales-per-set/one-orientation-per-set into the
00076     reverse, multiple-orientations-per-set/one-scale-per-set.
00077 */
00078 template <class T>
00079 CudaImageSet<T> cudaTakeSlice(const CudaImageSet<T>* sets, uint N, uint s);
00080 
00081 
00082 #endif // !CUDAIMAGESET_OPS_H_DEFINED
00083 
00084 // ######################################################################
00085 /* So things look consistent in everyone's emacs... */
00086 /* Local Variables: */
00087 /* indent-tabs-mode: nil */
00088 /* End: */
Generated on Sun May 8 08:04:43 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3