imageprocessor.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Robot Group Leipzig                             *
00003  *    martius@informatik.uni-leipzig.de                                    *
00004  *    der@informatik.uni-leipzig.de                                        *
00005  *                                                                         *
00006  *   This program is free software; you can redistribute it and/or modify  *
00007  *   it under the terms of the GNU General Public License as published by  *
00008  *   the Free Software Foundation; either version 2 of the License, or     *
00009  *   (at your option) any later version.                                   *
00010  *                                                                         *
00011  *   This program is distributed in the hope that it will be useful,       *
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00014  *   GNU General Public License for more details.                          *
00015  *                                                                         *
00016  *   You should have received a copy of the GNU General Public License     *
00017  *   along with this program; if not, write to the                         *
00018  *   Free Software Foundation, Inc.,                                       *
00019  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00020  *                                                                         *
00021  *
00022  *******************************************`********************************/
00023 #ifndef __IMAGEPROCESSOR
00024 #define __IMAGEPROCESSOR
00025 
00026 #include <osg/Image>
00027 #include "camera.h"
00028 
00029 namespace lpzrobots {
00030 
00031   /**
00032      Base class for image processing units. 
00033      The result of a processing is an image (returned by init)
00034      The source for processing can be any image from previous
00035      units. An implemenation must store the pointers to the source(s)
00036      and must also hold a destination image.    
00037   */
00038   struct ImageProcessor {
00039     ImageProcessor() {};
00040     virtual ~ImageProcessor() {};
00041 
00042     /**
00043        initialization with all images so far. The last image in the list
00044        is probably the one to use for processing. (output from last processor)
00045        @return result image structure of this processor
00046     */
00047     virtual Camera::CameraImage init(const Camera::CameraImages& imgs) = 0;
00048 
00049     /// perform the image calculation here
00050     virtual void process() = 0;
00051 
00052   };
00053 
00054 }
00055 
00056 #endif
Generated on Fri Nov 4 10:59:38 2011 for Robot Simulator of the Robotics Group for Self-Organization of Control by  doxygen 1.6.3