Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Modules/ImageProcessor/ImageProcessor.h

Go to the documentation of this file.
00001 /** 
00002 * @file ImageProcessor.h
00003 *
00004 * This file contains a generic class for ImageProcessor.
00005 *
00006 * @author Matthias Jüngel
00007 * @author Martin Lötzsch
00008 */
00009 
00010 #ifndef __ImageProcessor_h_
00011 #define __ImageProcessor_h_
00012 
00013 #ifdef _WIN32
00014 #pragma warning(disable:4786) 
00015 // the constructor with all it's long parameter type names results in a too
00016 // long debug identifier
00017 #endif
00018 
00019 #include "Tools/Module/Module.h"
00020 
00021 #include "Representations/Perception/Image.h"
00022 #include "Representations/Perception/CameraMatrix.h"
00023 #include "Representations/Perception/ColorTable.h"
00024 #include "Representations/Perception/LandmarksPercept.h"
00025 #include "Representations/Perception/BallPercept.h"
00026 #include "Representations/Perception/LinesPercept.h"
00027 #include "Representations/Perception/EdgesPercept.h"
00028 #include "Representations/Perception/PlayersPercept.h"
00029 #include "Representations/Perception/ObstaclesPercept.h"
00030 #include "Representations/Perception/SpecialPercept.h"
00031 #include "Representations/Perception/CalibrationRequest.h"
00032 #include "Representations/Cognition/RobotPose.h"
00033 #include "Representations/Cognition/BallModel.h"
00034 #include "Representations/Cognition/PlayerPoseCollection.h"
00035 #include "Representations/Cognition/RobotState.h"
00036 
00037 /**
00038 * @class ImageProcessorInterfaces
00039 * 
00040 * The interfaces of the ImageProcessor module.
00041 */
00042 class ImageProcessorInterfaces
00043 {
00044 public:
00045   /** Constructor. */
00046   ImageProcessorInterfaces(
00047     const Image& image,
00048     const CameraMatrix& cameraMatrix,
00049     ColorTable& colorTable,
00050     const RobotPose& robotPose,
00051     const BallModel& ballModel,
00052     const PlayerPoseCollection& playerPoseCollection,
00053     const RobotState& robotState,
00054     const CalibrationRequest& calibrationRequest,
00055     LandmarksPercept& landmarksPercept,
00056     BallPercept& ballPercept,
00057     LinesPercept& linesPercept,
00058     EdgesPercept& edgesPercept,
00059     PlayersPercept& playersPercept,
00060     ObstaclesPercept& obstaclesPercept,
00061     SpecialPercept& specialPercept)
00062     : image(image),
00063     cameraMatrix(cameraMatrix),
00064     colorTable(colorTable),
00065     robotPose(robotPose),
00066     ballModel(ballModel),
00067     playerPoseCollection(playerPoseCollection),
00068     robotState(robotState),
00069     calibrationRequest(calibrationRequest),
00070     landmarksPercept(landmarksPercept),
00071     ballPercept(ballPercept),
00072     linesPercept(linesPercept),
00073     edgesPercept(edgesPercept),
00074     playersPercept(playersPercept),
00075     obstaclesPercept(obstaclesPercept),
00076     specialPercept(specialPercept)
00077   {}
00078 
00079   /** The image to be processed */
00080   const Image& image;
00081 
00082   /** The offset and the rotation of the camera */
00083   const CameraMatrix& cameraMatrix;
00084 
00085   /** The color table */ 
00086   ColorTable& colorTable;
00087 
00088   /** The last calculated ball robot pose */
00089   const RobotPose& robotPose;
00090 
00091   /** The last calculated ball position */
00092   const BallModel& ballModel;
00093 
00094   /** The last calculated player pose collection */
00095   const PlayerPoseCollection& playerPoseCollection;
00096 
00097   /** The last calculated robot state */
00098   const RobotState& robotState;
00099 
00100   /** The calibration request */
00101   const CalibrationRequest& calibrationRequest;
00102 
00103   /** The landmarks percept to be generated */
00104   LandmarksPercept& landmarksPercept;
00105 
00106   /** The ball percept to be generated */
00107   BallPercept& ballPercept;
00108 
00109   /** The lines percept to be generated */
00110   LinesPercept& linesPercept;
00111 
00112   /** The edges percept to be generated */
00113   EdgesPercept& edgesPercept;
00114 
00115   /** The players percept to be generated */
00116   PlayersPercept& playersPercept;
00117 
00118   /** The obstacles percept to be generated */
00119   ObstaclesPercept& obstaclesPercept;
00120 
00121   /** */
00122   SpecialPercept& specialPercept; 
00123 };
00124 
00125 
00126 /**
00127 * @class ImageProcessor 
00128 *
00129 * The base class for image processors.
00130 * ImageProcessors calculate percepts.
00131 *
00132 * @author Matthias Jüngel
00133 * @author Martin Lötzsch
00134 */
00135 class ImageProcessor : public Module, public ImageProcessorInterfaces
00136 {
00137 public:
00138 /*
00139 * Constructor.
00140 * @param interfaces The parameters of the ImageProcessor module.
00141   */
00142   ImageProcessor(const ImageProcessorInterfaces& interfaces)
00143     : ImageProcessorInterfaces(interfaces)
00144   {}
00145   
00146   /** Destructor */
00147   virtual ~ImageProcessor() {}
00148 };
00149 
00150 #endif // __ImageProcessor_h_
00151 
00152 /*
00153  * Change log :
00154  * 
00155  * $Log: ImageProcessor.h,v $
00156  * Revision 1.3  2004/06/15 10:58:26  thomas
00157  * added edge-specialist, edges-percept, debug-drawings etc. (not yet called from image-processor)
00158  *
00159  * Revision 1.2  2004/05/22 22:52:03  juengel
00160  * Renamed ballP_osition to ballModel.
00161  *
00162  * Revision 1.1.1.1  2004/05/22 17:19:26  cvsadm
00163  * created new repository GT2004_WM
00164  *
00165  * Revision 1.6  2004/03/08 01:38:57  roefer
00166  * Interfaces should be const
00167  *
00168  * Revision 1.5  2004/02/16 18:52:57  tim
00169  * Added BB2004ImageProcessor
00170  *
00171  * Revision 1.4  2004/02/03 13:19:49  spranger
00172  * renamed all references to  class BallP_osition to BallModel
00173  *
00174  * Revision 1.3  2003/10/12 20:18:07  juengel
00175  * ColorTable is not const anymore.
00176  *
00177  * Revision 1.2  2003/10/12 11:46:30  juengel
00178  * Added CalibrationRequest.
00179  *
00180  * Revision 1.1  2003/10/06 14:10:13  cvsadm
00181  * Created GT2004 (M.J.)
00182  *
00183  * Revision 1.2  2003/09/26 15:27:49  juengel
00184  * Renamed DataTypes to representations.
00185  *
00186  * Revision 1.1.1.1  2003/07/02 09:40:23  cvsadm
00187  * created new repository for the competitions in Padova from the 
00188  * tamara CVS (Tuesday 2:00 pm)
00189  *
00190  * removed unused solutions
00191  *
00192  * Revision 1.9  2003/03/11 18:50:47  loetzsch
00193  * disabled VC warning 4786
00194  *
00195  * Revision 1.8  2003/03/10 13:54:54  juengel
00196  * Added ObstaclesPercept to the GridImageProcessorInterfaces.
00197  *
00198  * Revision 1.7  2003/02/19 14:59:54  roefer
00199  * pColorTable -> colorTable
00200  *
00201  * Revision 1.6  2003/02/18 21:29:17  osterhues
00202  * Changed all instances of ColorTable64 to new base class ColorTable
00203  *
00204  * Revision 1.5  2003/01/30 22:31:48  juengel
00205  * Added LinesPercept to ImageProcessorInterfaces.
00206  *
00207  * Revision 1.4  2002/11/28 14:47:49  jhoffman
00208  * added special percetp for motion detector
00209  *
00210  * Revision 1.3  2002/09/17 23:55:21  loetzsch
00211  * - unraveled several datatypes
00212  * - changed the WATCH macro
00213  * - completed the process restructuring
00214  *
00215  * Revision 1.2  2002/09/12 09:45:58  juengel
00216  * continued change of module/solution mechanisms
00217  *
00218  * Revision 1.1  2002/09/10 15:36:14  cvsadm
00219  * Created new project GT2003 (M.L.)
00220  * - Cleaned up the /Src/DataTypes directory
00221  * - Removed challenge related source code
00222  * - Removed processing of incoming audio data
00223  * - Renamed AcousticMessage to SoundRequest
00224  *
00225  * Revision 1.5  2002/09/07 13:36:55  loetzsch
00226  * unified the vision modules into one module "ImageProcessor"
00227  * - FloodFillRLEImageProcessor, BallPerceptor, LandmarksPerceptor
00228  *   and PlayersPerceptor were are combined to the new solution
00229  *   "BlobImageProcessor"
00230  * - The GridImageProcessor and the SubPixelGradientCalculator became
00231  *   a solution of "ImageProcessor"
00232  *
00233  * Revision 1.4  2002/08/30 13:36:19  dueffert
00234  * removed unused includes
00235  *
00236  * Revision 1.3  2002/07/23 13:33:43  loetzsch
00237  * new streaming classes
00238  *
00239  * removed many #include statements
00240  *
00241  * Revision 1.2  2002/06/02 23:21:09  roefer
00242  * Single color table and progress in LinesSelfLocator
00243  *
00244  * Revision 1.1.1.1  2002/05/10 12:40:14  cvsadm
00245  * Moved GT2002 Project from ute to tamara.
00246  *
00247  * Revision 1.6  2002/04/02 13:10:19  dueffert
00248  * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete
00249  *
00250  * Revision 1.5  2002/02/05 20:02:16  risler
00251  * handleDebugMessage now returns bool, added debug message handling to ImageProcessor
00252  *
00253  * Revision 1.4  2001/12/21 14:09:39  roefer
00254  * Added several destructors
00255  *
00256  * Revision 1.3  2001/12/10 17:47:06  risler
00257  * change log added
00258  *
00259  */

Generated on Thu Sep 23 19:57:29 2004 for GT2004 by doxygen 1.3.6