static PyObject* CameraManager_getCameras(CameraManagerWrap* self, PyObject* args) { CameraPtrList cameras; PyObject* list; cameras = self->mgrObj->getCameras(); list = PyList_New(cameras.size()); for(int c = 0; c < cameras.size(); c++) { PyObject* pycam = Camera_new(cameras[c]); PyList_SetItem(list, c, pycam); } return list; }
static PyObject* CameraManager_detectCameras(CameraManagerWrap* self, PyObject* args) { CameraPtrList cameras; PyObject* list; try { cameras = self->mgrObj->detectCameras(); list = PyList_New(cameras.size()); for(int c = 0; c < cameras.size(); c++) { PyObject* pycam = Camera_new(cameras[c]); PyList_SetItem(list, c, pycam); } } catch(RuntimeError &e) { PyErr_SetString(PyExc_RuntimeError, e.what()); return NULL; } return list; }
int main(int argc, char** argv) { int cnt; int numGrab = 1; CameraFinder camFinder; cv::Mat image; cv::Mat imageScaled; std::vector<std::string> windowNames; cout << endl; // Create and Connect cameras - set videomode // ------------------------------------------------------------------------ cnt = 0; CameraPtrList camPtrList = camFinder.createCameraPtrList(); for ( CameraPtrList::iterator it=camPtrList.begin(); it!=camPtrList.end(); it++ ) { CameraPtr camPtr = *it; camPtr -> connect(); std::cout << "image mode" << camPtr -> getImageMode(); //camPtr -> setVideoMode(VIDEOMODE_FORMAT7); //camPtr -> setTriggerInternal(); //Property prop = camPtr -> getProperty(PROPERTY_TYPE_FRAME_RATE); //prop.autoActive = false; //prop.value = 465; //camPtr -> setProperty(prop); } // Create opencv named windows // ------------------------------------------------------------------------ windowNames = std::vector<std::string>(camPtrList.size()); for ( cnt = 0; cnt < camPtrList.size(); cnt++) { std::stringstream ssName; ssName << "Camera: " << cnt; windowNames[cnt] = ssName.str(); cv::namedWindow( windowNames[cnt], CV_WINDOW_AUTOSIZE | CV_WINDOW_KEEPRATIO | CV_GUI_EXPANDED ); } // Print camera information // ------------------------------------------------------------------------ if (false) { cnt = 0; for ( CameraPtrList::iterator it=camPtrList.begin(); it!=camPtrList.end(); it++ ) { cout << endl << "Camera " << cnt << endl; CameraPtr camPtr = *it; camPtr -> printInfo(); cnt++; } } // Print Property information for all cameras // ------------------------------------------------------------------------ if (true) { cnt = 0; for ( CameraPtrList::iterator it=camPtrList.begin(); it!=camPtrList.end(); it++ ) { cout << endl << "Camera " << cnt << " Property Information" << endl; CameraPtr camPtr = *it; camPtr -> printAllPropertyInfos(); cnt++; } } // Print property values for all cameras // ------------------------------------------------------------------------ if (false) { cnt = 0; for ( CameraPtrList::iterator it=camPtrList.begin(); it!=camPtrList.end(); it++ ) { cout << endl << "Camera " << cnt << " Property Values" << endl; CameraPtr camPtr = *it; camPtr -> printAllProperties(); cnt++; } } //// Start capture on cameras //// ------------------------------------------------------------------------ //cout << "Starting capture on cameras: "; //cnt = 0; //for ( // CameraPtrList::iterator it=camPtrList.begin(); // it!=camPtrList.end(); // it++ // ) //{ // cout << cnt << " "; // CameraPtr camPtr = *it; // camPtr -> startCapture(); // cnt++; //} //cout << "done" << endl; //cout << endl; //// Grab images //// ------------------------------------------------------------------------ //cout << "Grabing images" << endl; //cout << endl; //for (int i=0; i<numGrab; i++) //{ // cout << " image: " << (i+1) << "/" << numGrab << " camera: "; // cnt = 0; // for ( // CameraPtrList::iterator it=camPtrList.begin(); // it!=camPtrList.end(); // it++ // ) // { // CameraPtr cameraPtr = *it; // cameraPtr -> grabImage(image); // if (cnt%10 == 0) { // cv::resize(image,imageScaled, cv::Size(0,0), 0.5, 0.5); // cv::imshow(windowNames[cnt], imageScaled); // cv::waitKey(1); // } // cout << cnt << " "; // cnt++; // } // cout << endl; //} //// Stop capture on cameras //// ------------------------------------------------------------------------ //cout << endl; //cout << "Stopping capture on cameras: "; //cnt = 0; //for ( // CameraPtrList::iterator it=camPtrList.begin(); // it!=camPtrList.end(); // it++ // ) //{ // cout << cnt << " "; // CameraPtr cameraPtr = *it; // cameraPtr -> stopCapture(); // cnt++; //} //cout << "done" << endl << endl; return 0; }