/// <summary> /// Create face detector /// </summary> /// <param name="type">Face detection algorithm type</param> /// <returns>Face detector</returns> public static IFaceDetector CreateDetector(FaceDetectionType type) { ResourceKey cascadeKey = ResourceKey.Unknown; ResourceKey filterKey = ResourceKey.Unknown; switch (type) { case FaceDetectionType.Frontal: cascadeKey = ResourceKey.FrontalCascade; filterKey = ResourceKey.FrontalPostFilter; break; case FaceDetectionType.Multiview: cascadeKey = ResourceKey.MultiviewCascade; filterKey = ResourceKey.MultiviewPostFilter; break; case FaceDetectionType.MultiviewPyramid: cascadeKey = ResourceKey.MultiviewCascade; filterKey = ResourceKey.MultiviewPostFilter; break; case FaceDetectionType.MultiviewPrefilter: cascadeKey = ResourceKey.MultiviewCascade; filterKey = ResourceKey.MultiviewPostFilter; break; default: throw new ArgumentOutOfRangeException("type", "Unsupported detection algorithm type."); } using (var cs = ResourceManager.GetStream(cascadeKey)) using (var ps = ResourceManager.GetStream(filterKey)) { var detector = FaceDetectorFactory.Create(type, cs, ps); return(detector); } }
public DetectorWrapper(FaceDetectionType type) { this.detector = FaceDetectorFactory.Create(type); this.Type = type; }