private void DetectFace() { string facePath; try { // get face detect dataset facePath = Path.GetFullPath(@"data/haarcascade_frontalface_default.xml"); } catch (Exception ex) { throw new Exception(ex.Message); } CascadeClassifier classifierFace = new CascadeClassifier(facePath); Image <Gray, byte> imgGrayCurr = CurrImageI.Convert <Gray, byte>().Clone(); Image <Gray, byte> imgGrayNext = NextImageI.Convert <Gray, byte>().Clone(); int minWidthCurr = (int)(CurrImageI.Width * HAAR_MIN_FACE_FACTOR); int minHeightCurr = (int)(CurrImageI.Height * HAAR_MIN_FACE_FACTOR); int maxWidthCurr = (int)(CurrImageI.Width * HAAR_MAX_FACE_FACTOR); int maxHeightCurr = (int)(CurrImageI.Height * HAAR_MAX_FACE_FACTOR); int minWidthNext = (int)(NextImageI.Width * HAAR_MIN_FACE_FACTOR); int minWHeightNext = (int)(NextImageI.Height * HAAR_MIN_FACE_FACTOR); int maxWidthNext = (int)(NextImageI.Width * HAAR_MAX_FACE_FACTOR); int maxHeightNext = (int)(NextImageI.Height * HAAR_MAX_FACE_FACTOR); System.Drawing.Size minSizeCurr = new System.Drawing.Size(minWidthCurr, minHeightCurr); System.Drawing.Size maxSizeCurr = new System.Drawing.Size(maxWidthCurr, maxHeightCurr); System.Drawing.Size minSizeNext = new System.Drawing.Size(minWidthNext, minWHeightNext); System.Drawing.Size maxSizeNext = new System.Drawing.Size(maxWidthNext, maxHeightNext); // Detect Faces facesArrCurr = classifierFace.DetectMultiScale(imgGrayCurr, HAAR_SCALE_FACTOR, HAAR_SCALE_MIN_NEIGHBOURS, minSizeCurr, maxSizeCurr); facesArrNext = classifierFace.DetectMultiScale(imgGrayNext, HAAR_SCALE_FACTOR, HAAR_SCALE_MIN_NEIGHBOURS, minSizeNext, maxSizeNext); FacesListCurr = facesArrCurr.ToList <Rectangle>(); FacesListNext = facesArrNext.ToList <Rectangle>(); }