12 #include <mrpt/3rdparty/do_opencv_includes.h>
16 #ifdef HAVE_OPENCV_VIDEOIO
18 #include <opencv2/videoio.hpp>
35 CImageGrabber_OpenCV::CImageGrabber_OpenCV(
47 cv_cap_indx = CV_CAP_ANY;
50 cv_cap_indx = CV_CAP_DC1394;
53 cv_cap_indx = CV_CAP_V4L;
56 cv_cap_indx = CV_CAP_VFW;
59 cv_cap_indx = CV_CAP_MIL;
62 cv_cap_indx = CV_CAP_DSHOW;
68 cv_cap_indx += cameraIndex;
74 "[CImageGrabber_OpenCV] ERROR: Can't open camera '%i'!!\n",
83 if (options.
gain != 0)
86 cerr <<
"[CImageGrabber_OpenCV] Warning: Could not set the "
87 "capturing gain property!"
100 MY_MODE_160x120_YUV444 = 64,
101 MY_MODE_320x240_YUV422,
102 MY_MODE_640x480_YUV411,
103 MY_MODE_640x480_YUV422,
105 MY_MODE_640x480_MONO,
106 MY_MODE_640x480_MONO16
111 cvMode1394 = MY_MODE_320x240_YUV422;
115 cvMode1394 = MY_MODE_640x480_YUV422;
119 cvMode1394 = MY_MODE_640x480_MONO;
123 if (!
m_capture->cap.set(CV_CAP_PROP_MODE, cvMode1394))
124 cerr <<
"[CImageGrabber_OpenCV] Warning: Could not set the "
126 << cvMode1394 <<
" property!" << endl;
129 cerr <<
"[CImageGrabber_OpenCV] Warning: Not valid combination "
130 "of width x height x color mode for OpenCV/IEEE1394 "
141 cerr <<
"[CImageGrabber_OpenCV] Warning: Could not set the fps "
157 cerr <<
"[CImageGrabber_OpenCV] Warning: Could not set the "
158 "frame width & height property!"
166 THROW_EXCEPTION(
"The MRPT has been compiled with MRPT_HAS_OPENCV=0 !");
181 "[CImageGrabber_OpenCV] Warning! Can't open AVI file '%s'!!\n",
182 AVI_fileName.c_str());
189 THROW_EXCEPTION(
"The MRPT has been compiled with MRPT_HAS_OPENCV=0 !");
220 if (!
m_capture->cap.grab())
return false;
225 for (
int nTries = 0; nTries < 10; nTries++)
232 out_observation.
image =
236 cerr <<
"[CImageGrabber_OpenCV] WARNING: Ignoring error #" << nTries + 1
237 <<
" retrieving frame..." << endl;
238 std::this_thread::sleep_for(1ms);
242 THROW_EXCEPTION(
"The MRPT has been compiled with MRPT_HAS_OPENCV=0 !");