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 CCImageGrabber_dc1394
00029 #define CCImageGrabber_dc1394
00030
00031 #include <mrpt/config.h>
00032
00033 #include <mrpt/slam/CObservationImage.h>
00034
00035
00036 namespace mrpt
00037 {
00038 namespace vision
00039 {
00040
00041 typedef enum {
00042 FRAMERATE_1_875= 32,
00043 FRAMERATE_3_75,
00044 FRAMERATE_7_5,
00045 FRAMERATE_15,
00046 FRAMERATE_30,
00047 FRAMERATE_60,
00048 FRAMERATE_120,
00049 FRAMERATE_240
00050 } grabber_dc1394_framerate_t;
00051
00052 typedef enum {
00053 COLOR_CODING_MONO8= 352,
00054 COLOR_CODING_YUV411,
00055 COLOR_CODING_YUV422,
00056 COLOR_CODING_YUV444,
00057 COLOR_CODING_RGB8,
00058 COLOR_CODING_MONO16
00059 } grabber_dc1394_color_coding_t;
00060
00061
00066 struct TCaptureOptions_dc1394
00067 {
00068 TCaptureOptions_dc1394() :
00069 frame_width (640),
00070 frame_height (480),
00071 framerate (FRAMERATE_15),
00072 color_coding (COLOR_CODING_YUV422),
00073 mode7 (-1),
00074 shutter (-1),
00075 gain (-1),
00076 gamma (-1),
00077 brightness (-1),
00078 exposure (-1),
00079 sharpness (-1),
00080 white_balance (-1)
00081 {}
00082
00083 int frame_width,frame_height;
00084 grabber_dc1394_framerate_t framerate;
00085 grabber_dc1394_color_coding_t color_coding;
00086
00087 int mode7;
00088
00089 int shutter;
00090 int gain;
00091 int gamma;
00092 int brightness;
00093 int exposure;
00094 int sharpness;
00095 int white_balance;
00096 };
00097
00109 class MRPTDLLIMPEXP CImageGrabber_dc1394
00110 {
00111 protected:
00114 bool m_bInitialized;
00115
00117 void *m_dc1394_lib_context;
00118 void *m_dc1394camera;
00119 int m_desired_mode;
00120
00121
00122 TCaptureOptions_dc1394 m_options;
00123
00124 public:
00131 CImageGrabber_dc1394(
00132 uint64_t cameraGUID = 0,
00133 uint16_t cameraUnit = 0,
00134 const TCaptureOptions_dc1394 &options = TCaptureOptions_dc1394(),
00135 bool verbose = false
00136 );
00137
00140 virtual ~CImageGrabber_dc1394( );
00141
00143 bool isOpen() const
00144 {
00145 return m_bInitialized;
00146 }
00147
00152 bool changeCaptureOptions( const TCaptureOptions_dc1394 &options );
00153
00154
00160 bool getObservation( mrpt::slam::CObservationImage &out_observation);
00161
00162
00163 };
00164
00165 }
00166 }
00167
00168
00169 #endif