00001 /** 00002 * @file ImageProcessorSelector.h 00003 * 00004 * Definition of class ImageProcessorSelector 00005 * 00006 * @author Max Risler 00007 * @author Martin Lötzsch 00008 * @author Matthias Jüngel 00009 */ 00010 00011 #ifndef __ImageProcessorSelector_h_ 00012 #define __ImageProcessorSelector_h_ 00013 00014 #include "Tools/Module/ModuleSelector.h" 00015 00016 #include "GT2004ImageProcessor/GT2004ImageProcessor.h" 00017 #include "CheckerboardDetector.h" 00018 #include "RasterImageProcessor/RasterImageProcessor.h" 00019 00020 /** 00021 * ImageProcessor selection module. 00022 * 00023 * A selector for image processor modules. 00024 */ 00025 class ImageProcessorSelector : public ModuleSelector, public ImageProcessorInterfaces 00026 { 00027 public: 00028 /** 00029 * Constructor. 00030 * @param handler The module handler of the process. 00031 * @param interfaces The parameters of the ImageProcessor module. 00032 */ 00033 ImageProcessorSelector( 00034 ModuleHandler &handler, 00035 const ImageProcessorInterfaces& interfaces) 00036 : ModuleSelector(SolutionRequest::imageProcessor), 00037 ImageProcessorInterfaces(interfaces) 00038 { 00039 handler.setModuleSelector(SolutionRequest::imageProcessor, this); 00040 } 00041 00042 /** 00043 * Is called on start and when the selected solution changes 00044 * to create a specific solution. 00045 * @param id The id of the solution to create 00046 * @return The created solution or 0 00047 */ 00048 virtual Module* createSolution(SolutionRequest::ModuleSolutionID id) 00049 { 00050 switch(id) 00051 { 00052 case SolutionRequest::gt2004ImageProcessor: 00053 return new GT2004ImageProcessor(*this); 00054 00055 case SolutionRequest::checkerboardDetector: 00056 return new CheckerboardDetector(*this); 00057 00058 case SolutionRequest::rasterImageProcessor: 00059 return new RasterImageProcessor(*this); 00060 00061 default: 00062 return 0; 00063 } 00064 } 00065 }; 00066 00067 #endif // ImageProcessorSelector_h_ 00068 00069 /* 00070 * Change log : 00071 * 00072 * $Log: ImageProcessorSelector.h,v $ 00073 * Revision 1.8 2004/09/02 07:59:30 schmidtb 00074 * Added RasterImageProcessor to repository, because we used it for the OpenChallenge. 00075 * 00076 * Revision 1.7 2004/07/20 20:44:18 spranger 00077 * removed slam and regiongrowing-imageprocessors 00078 * 00079 * Revision 1.6 2004/07/10 00:13:58 spranger 00080 * renaming for coderelease and preparations for gt2005 00081 * 00082 * Revision 1.5 2004/07/02 10:11:47 nistico 00083 * Cloned main image processor and created 00084 * SpecialLandmarks specialist for SLAM challenge 00085 * 00086 * Revision 1.4 2004/06/17 11:24:04 roefer 00087 * Added RGIP and GT2004SL 00088 * 00089 * Revision 1.3 2004/05/29 18:21:27 dueffert 00090 * walk parameter evolution, measurement and calibration stuff ported to GT2004_WM 00091 * 00092 * Revision 1.2 2004/05/22 18:47:42 juengel 00093 * Removed some solutions. 00094 * 00095 * Revision 1.1.1.1 2004/05/22 17:19:27 cvsadm 00096 * created new repository GT2004_WM 00097 * 00098 * Revision 1.16 2004/05/04 13:56:23 tim 00099 * added GT2004ImageProcessor 00100 * 00101 * Revision 1.15 2004/04/18 11:57:46 nistico 00102 * Removed MSH2004ImageProcessor2 (integrated all changes into MSH2004ImageProcessor) 00103 * 00104 * Revision 1.14 2004/04/08 15:33:05 wachter 00105 * GT04 checkin of Microsoft-Hellounds 00106 * 00107 * Revision 1.13 2004/03/28 18:35:18 nistico 00108 * Temporarily created MSH2004ImageProcessor2, it has some important advancements compared to 00109 * the MSH2004ImageProcessor1 but it is untested on real robots yet, hence the creation of the 00110 * new module. 00111 * It will be removed soon, don't use it! 00112 * 00113 * Revision 1.12 2004/03/20 14:43:09 pg_thki 00114 * - removed unused image processors. 00115 * 00116 * Revision 1.11 2004/03/19 11:31:55 nistico 00117 * ColorTable32KImageProcessor removed 00118 * 00119 * Revision 1.10 2004/03/16 14:16:06 risler 00120 * cloned GT2003ImageProcessor to DDD2004ImageProcessor 00121 * 00122 * Revision 1.9 2004/03/08 01:38:57 roefer 00123 * Interfaces should be const 00124 * 00125 * Revision 1.8 2004/02/16 18:52:57 tim 00126 * Added BB2004ImageProcessor 00127 * 00128 * Revision 1.7 2004/01/21 14:31:58 loetzsch 00129 * Module Selectors create only the selected solution. 00130 * When the solution changes, the old solution is erased and the new 00131 * one ist created using createSolution(..) 00132 * 00133 * Revision 1.6 2004/01/20 12:40:08 nistico 00134 * - Added support for ColorTable32K (65K elements in packed format) 00135 * - RobotControl can now convert GT *.log files into AIBOVision (external ColorTable32K calibration tool) *.amv file format 00136 * 00137 * Revision 1.5 2004/01/15 15:43:00 kindler 00138 * Added ComboImageProcessor (only temporarily, for debugging only..) 00139 * 00140 * Revision 1.4 2003/12/08 15:01:42 schmidtb 00141 * reactivated RIP 00142 * 00143 * Revision 1.3 2003/12/06 06:31:19 loetzsch 00144 * no message 00145 * 00146 * Revision 1.2 2003/11/20 10:28:59 schmidtb 00147 * Ball Detection added 00148 * 00149 * Revision 1.1 2003/10/06 14:10:13 cvsadm 00150 * Created GT2004 (M.J.) 00151 * 00152 * Revision 1.2 2003/07/30 14:50:02 dueffert 00153 * CheckerboardDetector added 00154 * 00155 * Revision 1.1.1.1 2003/07/02 09:40:23 cvsadm 00156 * created new repository for the competitions in Padova from the 00157 * tamara CVS (Tuesday 2:00 pm) 00158 * 00159 * removed unused solutions 00160 * 00161 * Revision 1.14 2003/05/20 15:52:42 deutsch 00162 * Added GridImageProcessorTSL. 00163 * 00164 * Revision 1.13 2003/05/01 13:24:24 roefer 00165 * Copied LinesImageProcessor2 to GT2003ImageProcessor 00166 * 00167 * Revision 1.12 2003/04/15 17:19:43 risler 00168 * moved DDDGO2003 ImageProcessor to own module 00169 * removed ContinuousBasicBehaviorTester 00170 * 00171 * Revision 1.11 2003/04/04 17:18:03 juengel 00172 * AddedHUGO2003ImageProcessor 00173 * 00174 * Revision 1.10 2003/03/12 22:26:22 roefer 00175 * LinesImageProcessor2 added 00176 * 00177 * Revision 1.9 2003/03/05 14:07:09 roefer 00178 * LinesPerceptor2 is now LinesImageProcessor 00179 * 00180 * Revision 1.8 2003/03/04 15:02:39 osterhues 00181 * Changed GridImageProcessorDo to GridImageProcessor3 00182 * 00183 * Revision 1.7 2003/01/22 15:00:03 dueffert 00184 * checkerboard stuff added 00185 * 00186 * Revision 1.6 2003/01/09 14:10:39 jhoffman 00187 * no message 00188 * 00189 * Revision 1.5 2003/01/03 17:22:07 deutsch 00190 * added class GridmageProcesserDo 00191 * 00192 * Revision 1.4 2002/11/26 14:19:41 juengel 00193 * GridImageProcessor2 added. 00194 * 00195 * Revision 1.3 2002/11/25 14:50:12 jhoffman 00196 * added motion detector 00197 * 00198 * Revision 1.2 2002/09/12 09:45:58 juengel 00199 * continued change of module/solution mechanisms 00200 * 00201 * Revision 1.1 2002/09/10 15:36:14 cvsadm 00202 * Created new project GT2003 (M.L.) 00203 * - Cleaned up the /Src/DataTypes directory 00204 * - Removed challenge related source code 00205 * - Removed processing of incoming audio data 00206 * - Renamed AcousticMessage to SoundRequest 00207 * 00208 * Revision 1.4 2002/09/07 13:36:55 loetzsch 00209 * unified the vision modules into one module "ImageProcessor" 00210 * - FloodFillRLEImageProcessor, BallPerceptor, LandmarksPerceptor 00211 * and PlayersPerceptor were are combined to the new solution 00212 * "BlobImageProcessor" 00213 * - The GridImageProcessor and the SubPixelGradientCalculator became 00214 * a solution of "ImageProcessor" 00215 * 00216 * Revision 1.3 2002/08/22 14:41:04 risler 00217 * added some doxygen comments 00218 * 00219 * Revision 1.2 2002/06/02 23:21:09 roefer 00220 * Single color table and progress in LinesSelfLocator 00221 * 00222 * Revision 1.1.1.1 2002/05/10 12:40:14 cvsadm 00223 * Moved GT2002 Project from ute to tamara. 00224 * 00225 * Revision 1.6 2002/04/24 10:35:55 jhoffman 00226 * made the sub pixel thing a imagetoperceptcollection rather than an image processor 00227 * 00228 * Revision 1.5 2002/04/23 14:16:47 jhoffman 00229 * added gradient image processor 00230 * 00231 * Revision 1.4 2002/04/02 13:10:19 dueffert 00232 * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete 00233 * 00234 * Revision 1.3 2002/02/05 20:02:16 risler 00235 * handleDebugMessage now returns bool, added debug message handling to ImageProcessor 00236 * 00237 * Revision 1.2 2002/02/05 04:00:08 loetzsch 00238 * added a few new module selectors 00239 * 00240 * Revision 1.1 2002/01/31 19:41:24 risler 00241 * ImageProcessorSelector added 00242 * 00243 * 00244 */