public override IEnumerable<Face> DetectFaces(Image<Bgr, byte> image) { var item = this.priorityAlgorithm.Next(); Image<Bgr, byte> flippedImage = image; if (item.ShouldFlip) { flippedImage = image.Flip(FLIP.HORIZONTAL); } flippedImage = flippedImage.Mul(item.BrightnessMultiplier); var profileFaces = base.DetectFaces(flippedImage); if (profileFaces.Any()) { this.priorityAlgorithm.SetFirst(); foreach (var face in profileFaces) { face.Image = image; face.IsRightProfile = !item.ShouldFlip; face.IsLeftProfile = item.ShouldFlip; if (face.IsLeftProfile) { face.FlipZoneHorizontally(); } } return profileFaces; } return new List<Face>(); }
public override IEnumerable<Face> DetectFaces(Image<Bgr, byte> image) { var result = base.DetectFaces(image); result.ToList().ForEach(x => x.IsFrontal = true); return result; }
protected override MCvAvgComp[] GetFacesVector(Image<Gray, byte> grayImage) { return this.DetectVarious(grayImage); }