PXCCapture::Device* real_sense_info(PXCCaptureManager *pCaptureManager){ //Info PXCCapture::Device *device = pCaptureManager->QueryDevice(); PXCCapture::DeviceInfo device_info = {}; device->QueryDeviceInfo(&device_info); wprintf(device_info.name); cout << endl; cout << "Firmware: " << device_info.firmware[0] << "." << device_info.firmware[1] << "." << device_info.firmware[2] << "." << device_info.firmware[3] << endl; PXCPointF32 fov = device->QueryDepthFieldOfView(); cout << "Depth Horizontal Field Of View: " << fov.x << endl; cout << "Depth Vertical Field Of View: " << fov.y << endl; PXCSizeI32 csize = pCaptureManager->QueryImageSize(PXCCapture::STREAM_TYPE_COLOR); cout << "Color Resolution: " << csize.width << " * " << csize.height << endl; PXCSizeI32 dsize = pCaptureManager->QueryImageSize(PXCCapture::STREAM_TYPE_DEPTH); cout << "Depth Resolution: " << dsize.width << " * " << dsize.height << endl; //Camera calibration cout << "Calibrating" << endl; device->SetDepthConfidenceThreshold(6); device->SetIVCAMFilterOption(5); device->SetIVCAMLaserPower(16); device->SetIVCAMMotionRangeTradeOff(16); device->SetIVCAMAccuracy(device->IVCAM_ACCURACY_MEDIAN); cout << "Depth Setting - OK - Calibrated" << endl; return device; }
void initializeHandTracking() { // 手の検出器を作成する handAnalyzer = senseManager->QueryHand(); if ( handAnalyzer == 0 ) { throw std::runtime_error( "手の検出器の取得に失敗しました" ); } // 手のデータを取得する handData = handAnalyzer->CreateOutput(); if ( handData == 0 ) { throw std::runtime_error( "手の検出器の作成に失敗しました" ); } // RealSense カメラであれば、プロパティを設定する PXCCapture::Device *device = senseManager->QueryCaptureManager()->QueryDevice(); PXCCapture::DeviceInfo dinfo; device->QueryDeviceInfo( &dinfo ); if ( dinfo.model == PXCCapture::DEVICE_MODEL_IVCAM ) { device->SetDepthConfidenceThreshold( 1 ); //device->SetMirrorMode( PXCCapture::Device::MIRROR_MODE_DISABLED ); device->SetIVCAMFilterOption( 6 ); } // Hand Module Configuration PXCHandConfiguration* config = handAnalyzer->CreateActiveConfiguration(); //config->EnableNormalizedJoints( true ); //config->SetTrackingMode( PXCHandData::TRACKING_MODE_EXTREMITIES ); //config->EnableAllAlerts(); config->EnableSegmentationImage( true ); config->ApplyChanges(); config->Update(); }
bool GesturePipeline::init() { _pxcSenseManager = PXCSenseManager::CreateInstance(); /* Set Mode & Source */ pxcCHAR * deviceName = retrieveDeviceName(); _pxcSenseManager->QueryCaptureManager()->FilterByDeviceInfo(deviceName, 0, 0); pxcStatus status = _pxcSenseManager->EnableHand(); _pxcHandModule = _pxcSenseManager->QueryHand(); if (_pxcHandModule == NULL || status != pxcStatus::PXC_STATUS_NO_ERROR) { cocos2d::log("Failed to pair the gesture module with I/O"); return 0; } /* Init */ if (_pxcSenseManager->Init() >= PXC_STATUS_NO_ERROR) { _pxcHandData = _pxcHandModule->CreateOutput(); initRules(_pxcHandData); // IF IVCAM Set the following properties PXCCapture::Device *device = _pxcSenseManager->QueryCaptureManager()->QueryDevice(); PXCCapture::DeviceInfo dinfo; device->QueryDeviceInfo(&dinfo); if (dinfo.model == PXCCapture::DEVICE_MODEL_IVCAM) { device->SetDepthConfidenceThreshold(1); device->SetMirrorMode(PXCCapture::Device::MIRROR_MODE_DISABLED); device->SetIVCAMFilterOption(6); } // Hand Module Configuration PXCHandConfiguration* config = _pxcHandModule->CreateActiveConfiguration(); config->SetTrackingMode(PXCHandData::TrackingModeType::TRACKING_MODE_FULL_HAND); config->EnableSegmentationImage(true); config->ApplyChanges(); config->Update(); config->Release(); return 1; } else { cocos2d::log("Init Failed"); return 0; } }