- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi guys.
I tried to make some test in relasense camera using the java language.
Below the code.
I tried to capture de landmaks but the java program return the null points.
Why?
import intel.rssdk.PXCMCaptureManager; import intel.rssdk.PXCMFaceConfiguration; import intel.rssdk.PXCMFaceData; import intel.rssdk.PXCMFaceModule; import intel.rssdk.PXCMSenseManager; import intel.rssdk.PXCMSession; import intel.rssdk.pxcmStatus; public class TesteLandMark { public static void main(String[] args) { // Create session PXCMSession session = PXCMSession.CreateInstance(); if (session == null) { System.out.print("Failed to create a session instance\n"); System.exit(3); } PXCMSenseManager senseMgr = session.CreateSenseManager(); if (senseMgr == null) { System.out.print("Failed to create a SenseManager instance\n"); System.exit(3); } PXCMCaptureManager captureMgr = senseMgr.QueryCaptureManager(); captureMgr.FilterByDeviceInfo("RealSense", null, 0); pxcmStatus sts = senseMgr.EnableFace(null); if (sts.compareTo(pxcmStatus.PXCM_STATUS_NO_ERROR) < 0) { throw new IllegalStateException("Failed to enable face"); } PXCMFaceModule face = senseMgr.QueryFace(); PXCMFaceConfiguration cfg = face.CreateActiveConfiguration(); cfg.EnableAllAlerts(); cfg.ApplyChanges(); cfg.close(); sts = senseMgr.Init(); while (senseMgr.AcquireFrame(true) == pxcmStatus.PXCM_STATUS_NO_ERROR) { PXCMFaceModule face2 = senseMgr.QueryFace(); PXCMFaceData faceData = face2.CreateOutput(); faceData.Update(); int numFaces = faceData.QueryNumberOfDetectedFaces(); System.out.println("Saw: " + numFaces + " faces."); for (int i = 0; i < numFaces; i++) { // Retrieve the face landmark data instance PXCMFaceData.Face face1 = faceData.QueryFaceByIndex(i); PXCMFaceData.LandmarksData ldata = face1.QueryLandmarks(); // allocate the array big enough to hold the landmark points. int npoints = ldata.QueryNumPoints(); PXCMFaceData.LandmarkPoint[] points = new PXCMFaceData.LandmarkPoint[npoints]; // get the landmark data ldata.QueryPoints(points); for(PXCMFaceData.LandmarkPoint p: points){ if(p != null){ System.out.println("points x: " + p.image.x); System.out.println("points y: " + p.image.y); } } } faceData.close(); senseMgr.ReleaseFrame(); } } }
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which camera are you using? Which version release SDK? Where did you get Null? Please provide us detail info so I can help you. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi David
Below the information about the SDk. The camera is RealSense F200
- Intel(R) RealSense(TM) SDK 8.0.24.6528
- Intel(R) RealSense(TM) SDK Runtime 6.0.21.6598
- Intel(R) RealSense(TM) Depth Camera Manager 1.4.27.41944
- Intel(R) RealSense(TM) 3D Camera 2780
I tryed pick up the landmarks position but the code bring the points null.
// get the landmark data ldata.QueryPoints(points); for(PXCMFaceData.LandmarkPoint p: points){ if(p != null){ System.out.println("points x: " + p.image.x); System.out.println("points y: " + p.image.y); } } }
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
I got same Issue ? Any one came up with a solution ? Please share
Cheers
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page