CudaCutPaste.H

Go to the documentation of this file.
00001 /*!@file CUDA/CudaCutPaste.H Cut+paste operations from/to CudaImage subregions */
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: Rob Peters <rjpeters@klab.caltech.edu>
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/CUDA/CudaCutPaste.H $
00035 // $Id: CudaCutPaste.H 12962 2010-03-06 02:13:53Z irock $
00036 //
00037 
00038 #ifndef CUDA_CUDACUTPASTE_H_DEFINED
00039 #define CUDA_CUDACUTPASTE_H_DEFINED
00040 
00041 #include "Image/PixelsTypes.H"
00042 
00043 class Dims;
00044 template <class T> class Point2D;
00045 class Rectangle;
00046 template <class T> class CudaImage;
00047 
00048 //! Extract a subimage from the input image.
00049 /*! The upper left corner of the subimage is given by a Point2D<int>, and the
00050     size of the subimage is given by the Dims. If zerofill is false, then
00051     the rectangle given by Point2D<int>+Dims must be wholly contained within the
00052     bounds of the input image. If zerofill is true, then any output region
00053     that lies outside the bounds of the input will be zero-filled (where
00054     zero means the default value for type T). */
00055 CudaImage<float> cudaCrop(const CudaImage<float>& src,
00056                      const Point2D<int>& upperLeft, const Dims& size,
00057                      const bool zerofill = false);
00058 
00059 //! Overload of crop() using a Rectangle instead of a Point2D<int>+Dims.
00060 CudaImage<float> cudaCrop(const CudaImage<float>& src,
00061                      const Rectangle& rect, const bool zerofill = false);
00062 
00063 //! Shift an image by a non even amount of pixels, need to interpolate
00064 CudaImage<float> cudaShiftImage(const CudaImage<float>& src, const float dx, const float dy);
00065 
00066 //! Paste an image onto an existing image
00067 void cudaInplacePaste(CudaImage<float>& dst,
00068                       const CudaImage<float>& img, const Point2D<int>& pos);
00069 
00070 //! Paste a PixRGB image onto an existing image
00071 void cudaInplacePaste(CudaImage<PixRGB<float> >& dst,
00072                       const CudaImage<PixRGB<float> >& img, const Point2D<int>& pos);
00073 
00074 //! Overlay an image onto an existing image, only overwriting an old pixel if new pixel is nonzero
00075 void cudaInplaceOverlay(CudaImage<float>& dst, const CudaImage<float>& img, const Point2D<int>& pos);
00076 
00077 //! Overlay a PixRGB image onto an existing image, only overwriting an old pixel if new pixel is nonzero
00078 void cudaInplaceOverlay(CudaImage<PixRGB<float> >& dst, const CudaImage<PixRGB<float> >& img, const Point2D<int>& pos);
00079 
00080 #endif
Generated on Sun May 8 08:04:43 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3