public void DrawLocation(PXCMFaceAnalysis.Detection.Data data) { lock (this) { if (bitmap == null) { return; } Graphics g = Graphics.FromImage(bitmap); Pen red = new Pen(Color.Red, 3.0f); Brush brush = new SolidBrush(Color.Red); if (Location.Checked) { Point[] points4 = new Point[] { new Point((int)data.rectangle.x, (int)data.rectangle.y), new Point((int)data.rectangle.x + (int)data.rectangle.w, (int)data.rectangle.y), new Point((int)data.rectangle.x + (int)data.rectangle.w, (int)data.rectangle.y + (int)data.rectangle.h), new Point((int)data.rectangle.x, (int)data.rectangle.y + (int)data.rectangle.h), new Point((int)data.rectangle.x, (int)data.rectangle.y) }; g.DrawLines(red, points4); g.DrawString(data.fid.ToString(), Font, brush, (float)data.rectangle.x, (float)data.rectangle.y); } brush.Dispose(); red.Dispose(); g.Dispose(); } }
private void TrackFace() { var data = new PXCMFaceAnalysis.Detection.Data(); var face = QueryFace(); ulong timestamp; int faceId; face.QueryFace(0, out faceId, out timestamp); var location = (PXCMFaceAnalysis.Detection)face.DynamicCast(PXCMFaceAnalysis.Detection.CUID); location.QueryData(faceId, out data); Face.IsVisible = data.rectangle.x > 0; //Debug.WriteLine("{0}|{1}|{2}|{3}", // data.rectangle.x, // data.rectangle.w, // data.rectangle.y, // data.rectangle.h // ); var ret = data.rectangle; //var x = ret.x + (ret.x + ret.w)/2; //var y = ret.y + (ret.y + ret.h)/2; var x = ret.x + (ret.x + ret.w) / 2; var y = ret.y + (ret.y + ret.h) / 2; Face.Position = new Point3D { X = (x), Y = (y), }; }
public bool QueryFaceLocationData(Int32 face, out PXCMFaceAnalysis.Detection.Data data) { if (initialized) { return(QueryFaceLocationDataC(instance, face, out data)); } data = new PXCMFaceAnalysis.Detection.Data(); return(false); }
public bool QueryFaceLocationData(Int32 face, out PXCMFaceAnalysis.Detection.Data data) { if (instance!=IntPtr.Zero) return QueryFaceLocationDataC(instance,face,out data); data=new PXCMFaceAnalysis.Detection.Data(); return false; }
private static extern bool QueryFaceLocationDataC(IntPtr pp, Int32 face, out PXCMFaceAnalysis.Detection.Data data);