using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using Luxand;
namespace FaceDemo { public partial class Form1 : Form { private String cameraName;
// WinAPI procedure to release HBITMAP handles returned by FSDKCam.GrabFrame [DllImport("gdi32.dll")] private static extern bool DeleteObject(IntPtr hObject);
long[] IDs; long faceCount = 0; FSDK.FeedFrame(tracker, 0, image.ImageHandle, ref faceCount, out IDs, sizeof(long) * 256); // maximum 256 faces detected Array.Resize(ref IDs, (int)faceCount);
Image frameImage = image.ToCLRImage(); Graphics gr = Graphics.FromImage(frameImage);
for (int i = 0; i < IDs.Length; ++i) { FSDK.TFacePosition facePosition = new FSDK.TFacePosition(); FSDK.GetTrackerFacePosition(tracker, 0, IDs[i], ref facePosition);
int left = facePosition.xc - (int)(facePosition.w * 0.6); int top = facePosition.yc - (int)(facePosition.w * 0.5); int w = (int)(facePosition.w * 1.2); gr.DrawRectangle(Pens.LightGreen, left, top, w, w);