00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CStereoGrabber_Bumblebee_H
00029 #define CStereoGrabber_Bumblebee_H
00030
00031
00032 #include <mrpt/slam/CObservationVisualLandmarks.h>
00033 #include <mrpt/slam/CObservationStereoImages.h>
00034 #include <mrpt/vision/utils.h>
00035
00036 #include <mrpt/config.h>
00037
00038 #if MRPT_HAS_BUMBLEBEE
00039 #include <digiclops.h>
00040 #include <triclops.h>
00041 #endif
00042
00043 namespace mrpt
00044 {
00045 namespace vision
00046 {
00052 class MRPTDLLIMPEXP CStereoGrabber_Bumblebee
00053 {
00054 protected:
00055 #if MRPT_HAS_BUMBLEBEE
00056 TriclopsContext m_triclops;
00057 DigiclopsContext m_digiclops;
00058 TriclopsInput m_triclopsInput;
00059 #endif
00060
00063 bool m_bInitialized;
00064
00067 unsigned char* m_pRectImageLeft,*m_pRectImageRight;
00068
00071 unsigned short* m_pDispImage;
00072
00073 unsigned int m_resolutionX, m_resolutionY;
00074
00075 public:
00078 CStereoGrabber_Bumblebee( int cameraIndex = 0, unsigned int resolutionX = 320, unsigned int resolutionY = 240 );
00079
00080 CStereoGrabber_Bumblebee( const CStereoGrabber_Bumblebee& ) :
00081 m_bInitialized(false),
00082 m_pRectImageLeft(NULL),m_pRectImageRight(NULL),
00083 m_pDispImage(NULL),
00084 m_resolutionX(0), m_resolutionY(0)
00085 {
00086 THROW_EXCEPTION("This class cannot be copied.");
00087 }
00088
00089 CStereoGrabber_Bumblebee & operator =( const CStereoGrabber_Bumblebee& ) { THROW_EXCEPTION("This class cannot be copied."); }
00090
00093 virtual ~CStereoGrabber_Bumblebee(void);
00094
00103 bool getObservation( mrpt::slam::CObservationVisualLandmarks &out_observation);
00104
00105
00115 bool getObservation(
00116 TROI ROI,
00117 mrpt::slam::CObservationVisualLandmarks &out_observation);
00118
00119
00129 bool getImagesPairObservation( mrpt::slam::CObservationStereoImages &out_observation);
00130
00131
00134 bool getBothObservation(
00135 mrpt::slam::CObservationVisualLandmarks &out_observation,
00136 mrpt::slam::CObservationStereoImages &out_observationStereo );
00137
00138
00142 bool getBothObservation(
00143 TROI ROI,
00144 mrpt::slam::CObservationVisualLandmarks &out_observation,
00145 mrpt::slam::CObservationStereoImages &out_observationStereo );
00146
00150 bool getBothObservation(
00151 vector_float &vX,
00152 vector_float &vY,
00153 vector_float &vZ,
00154 mrpt::slam::CObservationStereoImages &out_observationStereo );
00155
00156
00157
00158 };
00159
00160 }
00161 }
00162
00163
00164 #endif