/// <summary> /// /// </summary> /// <param name="faceTracker"></param> /// <param name="imgGray"></param> /// <param name="rects"></param> /// <param name="ptRotate"></param> /// <param name="angleRotate"></param> /// <returns></returns> public static bool TrackFace(CvFaceTracker faceTracker, IplImage imgGray, CvRect[] rects, out CvPoint ptRotate, out double angleRotate) { if (faceTracker == null) { throw new ArgumentNullException("faceTracker"); } if (imgGray == null) { throw new ArgumentNullException("imgGray"); } if (rects == null) { throw new ArgumentNullException("rects"); } if (rects.Length < 3) { throw new ArgumentException("rects.Length >= 3"); } var ret = NativeMethods.cvTrackFace(faceTracker.CvPtr, imgGray.CvPtr, rects, rects.Length, out ptRotate, out angleRotate); GC.KeepAlive(faceTracker); GC.KeepAlive(imgGray); return(ret); }
/// <summary> /// /// </summary> /// <param name="pFaceTracker"></param> /// <param name="imgGray"></param> /// <param name="pRects"></param> /// <param name="ptRotate"></param> /// <param name="dbAngleRotate"></param> /// <returns></returns> public static bool TrackFace(CvFaceTracker pFaceTracker, IplImage imgGray, CvRect[] pRects, out CvPoint ptRotate, out double dbAngleRotate) { if (pFaceTracker == null) { throw new ArgumentNullException("pFaceTracker"); } if (imgGray == null) { throw new ArgumentNullException("imgGray"); } if (pRects == null) { throw new ArgumentNullException("pRects"); } if (pRects.Length < 3) { throw new ArgumentException("pRects.Length >= 3"); } return(NativeMethods.cvTrackFace(pFaceTracker.CvPtr, imgGray.CvPtr, pRects, pRects.Length, out ptRotate, out dbAngleRotate)); }