47 #include <visp/vpOpenCVGrabber.h>
49 #if ( defined(VISP_HAVE_OPENCV) && (VISP_HAVE_OPENCV_VERSION < 0x020408))
51 #include <visp/vpImageConvert.h>
52 #include <visp/vpFrameGrabberException.h>
60 vpOpenCVGrabber::vpOpenCVGrabber()
61 : capture(NULL), DeviceType(0), flip(false)
76 vpOpenCVGrabber::~vpOpenCVGrabber( )
85 void vpOpenCVGrabber::open()
88 capture = cvCreateCameraCapture(DeviceType);
99 "Initialization not done : camera already used or no camera found") );
148 "Initialization not done") );
151 cvGrabFrame(capture);
152 im = cvRetrieveFrame(capture);
172 "Initialization not done") );
175 cvGrabFrame(capture);
176 im = cvRetrieveFrame(capture);
188 IplImage* vpOpenCVGrabber::acquire()
196 "Initialization not done") );
199 cvGrabFrame(capture);
200 im = cvRetrieveFrame(capture);
207 void vpOpenCVGrabber::close()
210 cvReleaseCapture( &capture );
221 void vpOpenCVGrabber::getFramerate(
double & framerate)
223 framerate = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
233 void vpOpenCVGrabber::setFramerate(
const double framerate)
235 cvSetCaptureProperty(capture, CV_CAP_PROP_FPS, framerate);
249 void vpOpenCVGrabber::setWidth(
const unsigned int w)
251 if ( cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, w))
256 "Impossible to set the size of the grabber") );
272 void vpOpenCVGrabber::setHeight(
const unsigned int h)
274 if ( cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, h))
279 "Impossible to set the size of the grabber") );
299 void vpOpenCVGrabber::setDeviceType(
int type)
303 if ( DeviceType != 0 && DeviceType != 100 &&DeviceType != 200 && DeviceType != 300)
305 vpTRACE(
"The expected type of device may be unknown.");
319 void vpOpenCVGrabber::setFlip(
bool flipType)
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
Error that can be emited by the vpFrameGrabber class and its derivates.