//------------------------------------------------------------------------------ void ofApp::setup() { ofSetLogLevel(OF_LOG_VERBOSE); ofSetFrameRate(30); loadCameras(); // initialize connection for(std::size_t i = 0; i < NUM_CAMERAS; i++) { IPCameraDef& cam = getNextCamera(); SharedIPVideoGrabber c = IPVideoGrabber::makeShared(); // if your camera uses standard web-based authentication, use this // c->setUsername(cam.username); // c->setPassword(cam.password); // if your camera uses cookies for authentication, use something like this: // c->setCookie("user", cam.username); // c->setCookie("password", cam.password); c->setCameraName(cam.getName()); c->setURI(cam.getURL()); c->connect(); // connect immediately // if desired, set up a video resize listener ofAddListener(c->videoResized, this, &ofApp::videoResized); grabbers.push_back(c); } }
//------------------------------------------------------------------------------ void ofApp::keyPressed(int key) { if(key == ' ') { // initialize connection for(std::size_t i = 0; i < NUM_CAMERAS; i++) { ofRemoveListener(grabbers[i]->videoResized, this, &ofApp::videoResized); SharedIPVideoGrabber c = IPVideoGrabber::makeShared(); IPCameraDef& cam = getNextCamera(); c->setUsername(cam.getUsername()); c->setPassword(cam.getPassword()); Poco::URI uri(cam.getURL()); c->setURI(uri); c->connect(); grabbers[i] = c; } } }
void ofApp::setup() { ofSetVerticalSync(true); isFirstImg = true; //videoGrabber.initGrabber(640, 480); // setup IP cam loadCamera(); IPCameraDef& cam = getCamera(); SharedIPVideoGrabber c = IPVideoGrabber::makeShared(); c->setCameraName(cam.getName()); c->setURI(cam.getURL()); c->connect(); grabber = c; // calibration FileStorage settings(ofToDataPath("settings.yml"), FileStorage::READ); if(settings.isOpened()) { int xCount = settings["xCount"], yCount = settings["yCount"]; calibration.setPatternSize(xCount, yCount); float squareSize = settings["squareSize"]; calibration.setSquareSize(squareSize); CalibrationPattern patternType; switch(settings["patternType"]) { case 0: patternType = CHESSBOARD; break; case 1: patternType = CIRCLES_GRID; break; case 2: patternType = ASYMMETRIC_CIRCLES_GRID; break; } calibration.setPatternType(patternType); } calibration.setFillFrame(false); calibration.load("dome.yml"); lastTime = 0; active = true; }