Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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));
        }