/// <summary> /// Retourne le poids du classificateur si celui-ci vérifie /// la fenêtre, 0 sinon. /// </summary> public double GetValue(Window Win, IntegralImage Image) { if (this.Check(Win, Image)) return this.Alpha; else return 0; }
/// <summary> /// Retourne true si le classificateur vérifie la fenêtre. /// </summary> public bool Check(Window Win, IntegralImage Image) { var featureValue = this.Feature.ComputeValue(Win.TopLeft, Win.SizeRatio, Image); var sizedValue = (int) (featureValue / (Win.SizeRatio * Win.SizeRatio)); var normalizedValue = Features.NormalizeFeature(sizedValue, Win.Deviation); return this.Parity * normalizedValue < this.Parity * this.Threshold; }
/// <summary> /// Retourne true si le classificateur vérifie la fenêtre. /// La somme des poids des /// </summary> public bool Check(Window Win, IntegralImage Image) { double sumValues = 0.0; foreach (var weakClassifier in this.Classifiers) sumValues += weakClassifier.GetValue(Win, Image); return sumValues >= this.GlobalAlpha / 2.0; }