示例#1
0
 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();
     }
 }
示例#2
0
        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),
            };
        }
示例#3
0
 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);
 }
示例#4
0
 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 (instance!=IntPtr.Zero) return QueryFaceLocationDataC(instance,face,out data);
     data=new PXCMFaceAnalysis.Detection.Data();
     return false;
 }
示例#6
0
 private static extern bool QueryFaceLocationDataC(IntPtr pp, Int32 face, out PXCMFaceAnalysis.Detection.Data data);