using DlibDotNet; using View_by_Distance.Shared.Models; namespace View_by_Distance.FaceRecognitionDotNet.Extensions; /// <summary> /// An abstract base class that provides functionality to detect face locations from image. /// </summary> public abstract class FaceDetector : DisposableObject { #region Methods internal IEnumerable<Location> Detect(Image image, int numberOfTimesToUpsample) => RawDetect(image.Matrix, numberOfTimesToUpsample); /// <summary> /// Returns an enumerable collection of face location correspond to all faces in specified image. /// </summary> /// <param name="matrix">The matrix contains a face.</param> /// <param name="numberOfTimesToUpsample">The number of times to up-sample the image when finding faces.</param> /// <returns>An enumerable collection of face location correspond to all faces.</returns> protected abstract IEnumerable<Location> RawDetect(MatrixBase matrix, int numberOfTimesToUpsample); #endregion }