Commit e84bde5c authored by Pierre Bürki's avatar Pierre Bürki
Browse files

Update skeleton finder setup

parent 6a83270f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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
+64 −49
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@

void SkeletonFinder::initNuitrack() {
	tracker = ofxnui::Tracker::create();
	tracker->init();
	tracker->init("");

	// depth feed settings
	tracker->setConfigValue("Realsense2Module.Depth.FPS", "30");
@@ -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) {
@@ -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;
@@ -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();
}


+1 −0
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ public:
    SkeletonFinder() {}

    void setup(ofMatrix4x4* transformMatrix, ofxGui &gui);
    void run();

    void updateSensorBox(int & value);
    
+2 −0
Original line number Diff line number Diff line
@@ -202,6 +202,8 @@ void ofApp::setup(){
 
    setupViewports();

	skeletonFinder.run();

    createHelp();
    
    capMesh.reSize(4);