int KinectImpl::getColorImage() { if( readyImageCapture( h_ColorImageEvent) > 0){ return imageCapture( h_CaptureColorImage, imageBuffer, img_size); } return 0; }
//-------------------------------------------------------------- void ofApp::keyReleased(int key){ switch (key) { case 'c': imageCapture(); break; case 'p': spectrum->loadImageSpectrum(captureProcessImage); break; case ' ': imageCapture(); if (spectrum->playing) { spectrum->pause(); // ofSoundStreamStop(); cout << "stop"; } else { spectrum->play(); // ofSoundStreamStart(); cout << "play"; } break; case 'r': playerHead->x1 = ofRandom(ofGetWidth()); playerHead->x2 = playerHead->x1; break; case 'g': bGuiView = !bGuiView; break; default: break; } }
void tst_QCameraBackend::testCameraStates() { QCamera camera; QCameraImageCapture imageCapture(&camera); QSignalSpy errorSignal(&camera, SIGNAL(error(QCamera::Error))); QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State))); QSignalSpy statusChangedSignal(&camera, SIGNAL(statusChanged(QCamera::Status))); QCOMPARE(camera.state(), QCamera::UnloadedState); QCOMPARE(camera.status(), QCamera::UnloadedStatus); camera.load(); QCOMPARE(camera.state(), QCamera::LoadedState); QCOMPARE(stateChangedSignal.count(), 1); QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::LoadedState); QVERIFY(stateChangedSignal.count() > 0); QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::LoadedStatus); camera.unload(); QCOMPARE(camera.state(), QCamera::UnloadedState); QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::UnloadedState); QTRY_COMPARE(camera.status(), QCamera::UnloadedStatus); QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::UnloadedStatus); #ifdef Q_WS_MAEMO_6 //resource policy doesn't work correctly when resource is released and immediately requested again. QTest::qWait(250); #endif camera.start(); QCOMPARE(camera.state(), QCamera::ActiveState); QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::ActiveState); QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::ActiveStatus); camera.stop(); QCOMPARE(camera.state(), QCamera::LoadedState); QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::LoadedState); QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::LoadedStatus); camera.unload(); QCOMPARE(camera.state(), QCamera::UnloadedState); QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::UnloadedState); QTRY_COMPARE(camera.status(), QCamera::UnloadedStatus); QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::UnloadedStatus); QCOMPARE(camera.errorString(), QString()); QCOMPARE(errorSignal.count(), 0); }
void tst_QCameraBackend::testCameraCapture() { QCamera camera; QCameraImageCapture imageCapture(&camera); //prevents camera to flash during the test camera.exposure()->setFlashMode(QCameraExposure::FlashOff); QVERIFY(!imageCapture.isReadyForCapture()); QSignalSpy capturedSignal(&imageCapture, SIGNAL(imageCaptured(int,QImage))); QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString))); imageCapture.capture(); QTRY_COMPARE(errorSignal.size(), 1); QCOMPARE(imageCapture.error(), QCameraImageCapture::NotReadyError); QCOMPARE(capturedSignal.size(), 0); errorSignal.clear(); camera.start(); QTRY_VERIFY(imageCapture.isReadyForCapture()); QCOMPARE(camera.status(), QCamera::ActiveStatus); QCOMPARE(errorSignal.size(), 0); int id = imageCapture.capture(); QTRY_VERIFY(!savedSignal.isEmpty()); QCOMPARE(capturedSignal.size(), 1); QCOMPARE(capturedSignal.last().first().toInt(), id); QCOMPARE(errorSignal.size(), 0); QCOMPARE(imageCapture.error(), QCameraImageCapture::NoError); QCOMPARE(savedSignal.last().first().toInt(), id); QString location = savedSignal.last().last().toString(); QVERIFY(!location.isEmpty()); QVERIFY(QFileInfo(location).exists()); QImageReader reader(location); reader.setScaledSize(QSize(320,240)); QVERIFY(!reader.read().isNull()); QFile(location).remove(); }
int KinectImpl::getDepthImage() { if( readyImageCapture(h_DepthImageEvent) > 0){ imageCapture(h_CaptureDepthImage, (char *)imageDepthRawBuffer, depth_img_size * 2); int i=0; for(int y=0; y<240; y++){ for(int x=0;x<320;x++){ RGBQUAD quad = Nui_ShortToQuad_Depth( imageDepthRawBuffer[i] ); imageDepthBuffer[i*3] = quad.rgbRed; imageDepthBuffer[i*3+1] = quad.rgbGreen; imageDepthBuffer[i*3+2] = quad.rgbBlue; i++; } } return 1; } return 0; }
void tst_QCameraBackend::testCameraCaptureMetadata() { #ifndef Q_WS_MAEMO_6 QSKIP("Capture metadata is supported only on harmattan"); #endif QCamera camera; QCameraImageCapture imageCapture(&camera); camera.exposure()->setFlashMode(QCameraExposure::FlashOff); QSignalSpy metadataSignal(&imageCapture, SIGNAL(imageMetadataAvailable(int,QString,QVariant))); QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); camera.start(); QTRY_VERIFY(imageCapture.isReadyForCapture()); int id = imageCapture.capture(QString::fromLatin1("/dev/null")); QTRY_VERIFY(!savedSignal.isEmpty()); QVERIFY(!metadataSignal.isEmpty()); QCOMPARE(metadataSignal.first().first().toInt(), id); }
//-------------------------------------------------------------- void ofApp::mouseReleased(int x, int y, int button){ imageCapture(); }
//-------------------------------------------------------------- void ofApp::update(){ // modelPosition(); spectrum->speed = speed; spectrum->maxHz = maxHz; spectrum->minHz = minHz; line = lineSize; if (spectrum->playing) { playerHead->x1 += speed; playerHead->x2 += speed; if (playerHead->x1>processScreenWidth){ playerHead->x1 = 0; playerHead->x2 = 0; } } if (returnZero) { playerHead->x1 = 0; playerHead->x2 = 0; } frameRate = ofToString(ofGetFrameRate(),1); originalFbo.begin(); fboCapture(); originalFbo.end(); if (imageProcessView && !bImageProcessView) { processingImagFbo.begin(); ofClear(0, 0); ofSetColor(255); processingImage(); processingImagFbo.end(); bImageProcessView = true; } else if (imageProcessView != false) { bImageProcessView = false; } if(imageProcessView && bImageProcess) { bImageProcess = false; imageCapture(); } if (!imageProcessView && !bImageProcess) { bImageProcess = true; imageCapture(); } if(bImageCapture) { bImageCapture = false; imageCapture(); } if (modelSelect) { imageCapture(); } }
//-------------------------------------------------------------- void ofApp::errorLengthChanged(int & _m){ imageCapture(); }
void tst_QCameraBackend::testCaptureToBuffer() { QCamera camera; QCameraImageCapture imageCapture(&camera); camera.exposure()->setFlashMode(QCameraExposure::FlashOff); camera.load(); #ifdef Q_WS_MAEMO_6 QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)); #endif if (!imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)) QSKIP("Buffer capture not supported"); QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg); QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToFile)); QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)); QVERIFY(imageCapture.isCaptureDestinationSupported( QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)); QSignalSpy destinationChangedSignal(&imageCapture, SIGNAL(captureDestinationChanged(QCameraImageCapture::CaptureDestinations))); QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToFile); imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer); QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToBuffer); QCOMPARE(destinationChangedSignal.size(), 1); QCOMPARE(destinationChangedSignal.first().first().value<QCameraImageCapture::CaptureDestinations>(), QCameraImageCapture::CaptureToBuffer); QSignalSpy capturedSignal(&imageCapture, SIGNAL(imageCaptured(int,QImage))); QSignalSpy imageAvailableSignal(&imageCapture, SIGNAL(imageAvailable(int,QVideoFrame))); QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString))); camera.start(); QTRY_VERIFY(imageCapture.isReadyForCapture()); int id = imageCapture.capture(); QTRY_VERIFY(!imageAvailableSignal.isEmpty()); QVERIFY(errorSignal.isEmpty()); QVERIFY(!capturedSignal.isEmpty()); QVERIFY(!imageAvailableSignal.isEmpty()); QTest::qWait(2000); QVERIFY(savedSignal.isEmpty()); QCOMPARE(capturedSignal.first().first().toInt(), id); QCOMPARE(imageAvailableSignal.first().first().toInt(), id); QVideoFrame frame = imageAvailableSignal.first().last().value<QVideoFrame>(); QVERIFY(frame.isValid()); QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); QVERIFY(!frame.size().isEmpty()); QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); QByteArray data((const char *)frame.bits(), frame.mappedBytes()); frame.unmap(); frame = QVideoFrame(); QVERIFY(!data.isEmpty()); QBuffer buffer; buffer.setData(data); buffer.open(QIODevice::ReadOnly); QImageReader reader(&buffer, "JPG"); reader.setScaledSize(QSize(640,480)); QImage img(reader.read()); QVERIFY(!img.isNull()); capturedSignal.clear(); imageAvailableSignal.clear(); savedSignal.clear(); //Capture to yuv buffer #ifdef Q_WS_MAEMO_6 QVERIFY(imageCapture.supportedBufferFormats().contains(QVideoFrame::Format_UYVY)); #endif if (imageCapture.supportedBufferFormats().contains(QVideoFrame::Format_UYVY)) { imageCapture.setBufferFormat(QVideoFrame::Format_UYVY); QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_UYVY); id = imageCapture.capture(); QTRY_VERIFY(!imageAvailableSignal.isEmpty()); QVERIFY(errorSignal.isEmpty()); QVERIFY(!capturedSignal.isEmpty()); QVERIFY(!imageAvailableSignal.isEmpty()); QVERIFY(savedSignal.isEmpty()); QTest::qWait(2000); QVERIFY(savedSignal.isEmpty()); frame = imageAvailableSignal.first().last().value<QVideoFrame>(); QVERIFY(frame.isValid()); qDebug() << frame.pixelFormat(); QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_UYVY); QVERIFY(!frame.size().isEmpty()); frame = QVideoFrame(); capturedSignal.clear(); imageAvailableSignal.clear(); savedSignal.clear(); imageCapture.setBufferFormat(QVideoFrame::Format_Jpeg); QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg); } //Try to capture to both buffer and file #ifdef Q_WS_MAEMO_6 QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)); #endif if (imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)) { imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile); int oldId = id; id = imageCapture.capture(); QVERIFY(id != oldId); QTRY_VERIFY(!savedSignal.isEmpty()); QVERIFY(errorSignal.isEmpty()); QVERIFY(!capturedSignal.isEmpty()); QVERIFY(!imageAvailableSignal.isEmpty()); QVERIFY(!savedSignal.isEmpty()); QCOMPARE(capturedSignal.first().first().toInt(), id); QCOMPARE(imageAvailableSignal.first().first().toInt(), id); frame = imageAvailableSignal.first().last().value<QVideoFrame>(); QVERIFY(frame.isValid()); QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); QVERIFY(!frame.size().isEmpty()); QString fileName = savedSignal.first().last().toString(); QVERIFY(QFileInfo(fileName).exists()); } }