Loading .gitignore +4 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,7 @@ bin/FreeImage.dll bin/HeadSpaceRS*.* HeadSpaceRS.vcxproj.user icon.aps /bin/the-hole.lib /bin/the-hole.exe /bin/realsense2.dll /bin/Intel.Realsense.dll src/SkeletonFinder.cpp +64 −49 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ void SkeletonFinder::initNuitrack() { tracker = ofxnui::Tracker::create(); tracker->init(); tracker->init(""); // depth feed settings tracker->setConfigValue("Realsense2Module.Depth.FPS", "30"); Loading @@ -31,13 +31,21 @@ void SkeletonFinder::initNuitrack() { tracker->setConfigValue("Realsense2Module.Depth.PostProcessing.SpatialFilter.spatial_delta", "50"); // distance settings tracker->setConfigValue("Segmantation.MAX_DISTANCE", "7000"); tracker->setConfigValue("Segmentation.MAX_DISTANCE", "7000"); tracker->setConfigValue("Skeletonization.MaxDistance", "7000"); // skeleton detection callback tracker->setSkeletonCallback([this](nuitrack::SkeletonData::Ptr data) { update(data); tracker->setIssuesCallback([this](nuitrack::IssuesData::Ptr data) { auto issue = data->getIssue<nuitrack::Issue>(); if (issue) { ofLogNotice() << "Issue detected! " << issue->getName() << " [" << issue->getId() << "]"; } }); //tracker->setRGBCallback([](nuitrack::RGBFrame::Ptr) {ofLog(OF_LOG_NOTICE) << "Skeleton found ! None position : "; }); //tracker->setDepthCallback([](nuitrack::DepthFrame::Ptr) {}); //// skeleton detection callback //tracker->setSkeletonCallback([this](nuitrack::SkeletonData::Ptr data) { // update(data); // }); } void SkeletonFinder::setup(ofMatrix4x4* transformMatrix, ofxGui& gui) { Loading @@ -50,7 +58,7 @@ void SkeletonFinder::update(nuitrack::SkeletonData::Ptr data) { skeletons.clear(); // TODO: filter using the capture bounds for (nuitrack::Skeleton skel : data->getSkeletons()) { vector<Joint> joints; /*vector<Joint> joints; for (nuitrack::Joint joint : skel.joints) { ofVec3f pos = ofxnui::Tracker::fromVector3(joint.real); pos = *transformMatrix * pos; Loading @@ -58,8 +66,15 @@ void SkeletonFinder::update(nuitrack::SkeletonData::Ptr data) { joints.push_back(Joint(joint.type, joint.confidence, pos)); } skeletons.push_back(Skeleton(skel.id, joints)); skeletons.push_back(Skeleton(skel.id, joints));*/ ofLog(OF_LOG_NOTICE) << "Skeleton found !"; /*ofLog(OF_LOG_NOTICE) << "Skeleton found ! None position : " << joints[0].pos; ofLog(OF_LOG_NOTICE) << "Skeleton found ! Head position : " << joints[0].pos;*/ } } void SkeletonFinder::run() { tracker->run(); } Loading src/SkeletonFinder.h +1 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,7 @@ public: SkeletonFinder() {} void setup(ofMatrix4x4* transformMatrix, ofxGui &gui); void run(); void updateSensorBox(int & value); Loading src/ofApp.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,8 @@ void ofApp::setup(){ setupViewports(); skeletonFinder.run(); createHelp(); capMesh.reSize(4); Loading Loading
.gitignore +4 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,7 @@ bin/FreeImage.dll bin/HeadSpaceRS*.* HeadSpaceRS.vcxproj.user icon.aps /bin/the-hole.lib /bin/the-hole.exe /bin/realsense2.dll /bin/Intel.Realsense.dll
src/SkeletonFinder.cpp +64 −49 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ void SkeletonFinder::initNuitrack() { tracker = ofxnui::Tracker::create(); tracker->init(); tracker->init(""); // depth feed settings tracker->setConfigValue("Realsense2Module.Depth.FPS", "30"); Loading @@ -31,13 +31,21 @@ void SkeletonFinder::initNuitrack() { tracker->setConfigValue("Realsense2Module.Depth.PostProcessing.SpatialFilter.spatial_delta", "50"); // distance settings tracker->setConfigValue("Segmantation.MAX_DISTANCE", "7000"); tracker->setConfigValue("Segmentation.MAX_DISTANCE", "7000"); tracker->setConfigValue("Skeletonization.MaxDistance", "7000"); // skeleton detection callback tracker->setSkeletonCallback([this](nuitrack::SkeletonData::Ptr data) { update(data); tracker->setIssuesCallback([this](nuitrack::IssuesData::Ptr data) { auto issue = data->getIssue<nuitrack::Issue>(); if (issue) { ofLogNotice() << "Issue detected! " << issue->getName() << " [" << issue->getId() << "]"; } }); //tracker->setRGBCallback([](nuitrack::RGBFrame::Ptr) {ofLog(OF_LOG_NOTICE) << "Skeleton found ! None position : "; }); //tracker->setDepthCallback([](nuitrack::DepthFrame::Ptr) {}); //// skeleton detection callback //tracker->setSkeletonCallback([this](nuitrack::SkeletonData::Ptr data) { // update(data); // }); } void SkeletonFinder::setup(ofMatrix4x4* transformMatrix, ofxGui& gui) { Loading @@ -50,7 +58,7 @@ void SkeletonFinder::update(nuitrack::SkeletonData::Ptr data) { skeletons.clear(); // TODO: filter using the capture bounds for (nuitrack::Skeleton skel : data->getSkeletons()) { vector<Joint> joints; /*vector<Joint> joints; for (nuitrack::Joint joint : skel.joints) { ofVec3f pos = ofxnui::Tracker::fromVector3(joint.real); pos = *transformMatrix * pos; Loading @@ -58,8 +66,15 @@ void SkeletonFinder::update(nuitrack::SkeletonData::Ptr data) { joints.push_back(Joint(joint.type, joint.confidence, pos)); } skeletons.push_back(Skeleton(skel.id, joints)); skeletons.push_back(Skeleton(skel.id, joints));*/ ofLog(OF_LOG_NOTICE) << "Skeleton found !"; /*ofLog(OF_LOG_NOTICE) << "Skeleton found ! None position : " << joints[0].pos; ofLog(OF_LOG_NOTICE) << "Skeleton found ! Head position : " << joints[0].pos;*/ } } void SkeletonFinder::run() { tracker->run(); } Loading
src/SkeletonFinder.h +1 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,7 @@ public: SkeletonFinder() {} void setup(ofMatrix4x4* transformMatrix, ofxGui &gui); void run(); void updateSensorBox(int & value); Loading
src/ofApp.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,8 @@ void ofApp::setup(){ setupViewports(); skeletonFinder.run(); createHelp(); capMesh.reSize(4); Loading