// Open DUO camera sensor bool DUOStereoSensorDriver::openCamera() { if (camera_open) return true; if(!OpenDUOCamera(frameSize.width, frameSize.height, 30)) { camera_open = false; return false; } camera_open = true; // Set exposure and LED brightness SetGain(duoProperties->gain); SetExposure(duoProperties->exposure); SetLed(duoProperties->led); // Un-flip frames SetVFlip(true); // Enable retrieval of undistorted (rectified) frames SetUndistort(true); return true; }
int main(int argc, char* argv[]) { printf("DUOLib Version: v%s\n", GetLibVersion()); // Open DUO camera and start capturing if(!OpenDUOCamera(WIDTH, HEIGHT, FPS)) { printf("Could not open DUO camera\n"); return 0; } // Create OpenCV windows cvNamedWindow("Left"); cvNamedWindow("Right"); // Set exposure and LED brightness SetExposure(50); SetLed(25); // Create image headers for left & right frames IplImage *left = cvCreateImageHeader(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1); IplImage *right = cvCreateImageHeader(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1); // Run capture loop until <Esc> key is pressed while((cvWaitKey(1) & 0xff) != 27) { // Capture DUO frame PDUOFrame pFrameData = GetDUOFrame(); if(pFrameData == NULL) continue; // Set the image data left->imageData = (char*)pFrameData->leftData; right->imageData = (char*)pFrameData->rightData; // Process images here (optional) // Display images cvShowImage("Left", left); cvShowImage("Right", right); } // Release image headers cvReleaseImageHeader(&left); cvReleaseImageHeader(&right); // Close DUO camera CloseDUOCamera(); return 0; }