public HaarObjectDetector(HaarCascade cascade, int minSize, ObjectDetectorSearchMode searchMode, float scaleFactor, ObjectDetectorScalingMode scalingMode) { this.classifier = new HaarClassifier(cascade); this.minSize = new Size(minSize, minSize); this.searchMode = searchMode; this.ScalingMode = scalingMode; this.factor = scaleFactor; this.detectedObjects = new List<Rectangle>(); this.baseWidth = cascade.Width; this.baseHeight = cascade.Height; }
public void Write(HaarCascade cascade, string className) { for (int i = 0; i < cascade.Stages.Length; i++) for (int j = 0; j < cascade.Stages[i].Trees.Length; j++) if (cascade.Stages[i].Trees[j].Length != 1) throw new ArgumentException("Only cascades with single node trees are currently supported."); writer.WriteLine(); writer.WriteLine("namespace HaarCascades"); writer.WriteLine("{"); writer.WriteLine(" using System.Collections.Generic;"); writer.WriteLine(); writer.WriteLine(" public class {0} : Vision.Detection.HaarCascade", className); writer.WriteLine(" {"); writer.WriteLine(); writer.WriteLine(" public {0}()", className); writer.WriteLine(" : base({0}, {1})", cascade.Width, cascade.Height); writer.WriteLine(" {"); writer.WriteLine(" List<HaarCascadeStage> stages = new List<HaarCascadeStage>();"); writer.WriteLine(" List<HaarFeatureNode[]> nodes;"); writer.WriteLine(" HaarCascadeStage stage;"); writer.WriteLine(); if (cascade.HasTiltedFeatures) { writer.WriteLine(" HasTiltedFeatures = true;"); writer.WriteLine(); } // Write cascade stages for (int i = 0; i < cascade.Stages.Length; i++) writeStage(i, cascade.Stages[i]); writer.WriteLine(); writer.WriteLine(" Stages = stages.ToArray();"); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine("}"); }
public HaarClassifier(HaarCascade cascade) { this.cascade = cascade; }
public object Clone() { HaarCascadeStage[] newStages = new HaarCascadeStage[Stages.Length]; for (int i = 0; i < newStages.Length; i++) newStages[i] = (HaarCascadeStage)Stages[i].Clone(); HaarCascade r = new HaarCascade(Width, Height); r.HasTiltedFeatures = this.HasTiltedFeatures; r.Stages = newStages; return r; }
public HaarObjectDetector(HaarCascade cascade, int minSize, ObjectDetectorSearchMode searchMode, float scaleFactor) : this(cascade, minSize, searchMode, scaleFactor, ObjectDetectorScalingMode.SmallerToGreater) { }
public HaarObjectDetector(HaarCascade cascade, int minSize, ObjectDetectorSearchMode searchMode) : this(cascade, minSize, searchMode, 1.2f) { }
public HaarObjectDetector(HaarCascade cascade, int minSize) : this(cascade, minSize, ObjectDetectorSearchMode.NoOverlap) { }
public HaarObjectDetector(HaarCascade cascade) : this(cascade, 15) { }