//-------------------------------------------------------------- void testApp::update(){ ofBackground(100,100,100); vidGrabber.update(); if (vidGrabber.isFrameNew()){ calculateCaptureFramerate(); } sprintf(buf,"App framerate : %f%s",ofGetFrameRate(), vidGrabber.f ? " (RECORDING)" : ""); }
//-------------------------------------------------------------- bool CameraInput::update(){ vidGrabber.update(); bool newFrame = vidGrabber.isFrameNew(); if (newFrame){ calculateCaptureFramerate(); camImage->setFromPixels( vidGrabber.getPixels(), camWidth, camHeight ); if (camFormat == VID_FORMAT_RGB){ if (warp) grayImage = rgbImage; else grayWarpImage = rgbImage; } if (camFormat == VID_FORMAT_GREYSCALE){ if (warp) grayWarpImage.warpIntoMe( grayImage, warper.dstPoints , warper.srcPoints); else grayWarpImage = grayImage; } //now grayWarpImage has the image if (bgSubtraction){ //absDiffWithCutoffInverted( &bgImage, &grayWarpImage, &diffImage, bgSubtractionCutOff ); cvAbsDiff(bgImage.getCvImage(), grayWarpImage.getCvImage(), diffImage.getCvImage()); diffImage.flagImageChanged(); binaryImage = diffImage; }else { binaryImage = grayWarpImage; } if (threshold) binaryImage.threshold(thresholdVal, false); if (invert) binaryImage.invert(); if ( numErosions > 0 ){ for (int i=0; i<numErosions; i++) binaryImage.erode(); } if ( numDilations > 0 ){ for (int i=0; i<numDilations; i++) binaryImage.dilate(); } if (bgSubtraction){ cvRunningAvg(grayWarpImage.getCvImage(), accImage.getCvImage(), bgAccumRate); cvConvert( accImage.getCvImage(), bgImage.getCvImage() ); bgImage.flagImageChanged(); } } if (uiState == SET_PROCESSING_SETTINGS){ processingPanel.update(); } if (uiState == SET_IMAGE_WARP){ warpingPanel.update(); } return newFrame; }