private void WriteFeature(HaarFeatureNode node) { _writer.Write("new HaarFeatureNode({0}, {1}, {2}, ", node.Threshold.ToString("R", NumberFormatInfo.InvariantInfo), node.LeftValue.ToString("R", NumberFormatInfo.InvariantInfo), node.RightValue.ToString("R", NumberFormatInfo.InvariantInfo)); if (node.Feature.Tilted) { _writer.Write("true, "); } // Write Haar-like rectangular features for (var k = 0; k < node.Feature.Rectangles.Length; k++) { WriteRectangle(node.Feature.Rectangles[k]); if (k < node.Feature.Rectangles.Length - 1) { _writer.Write(", "); } } _writer.Write(" )"); }
/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// /// <returns> /// A new object that is a copy of this instance. /// </returns> /// public object Clone() { var newTrees = new HaarFeatureNode[Trees.Length][]; for (var i = 0; i < newTrees.Length; i++) { var tree = Trees[i]; var newTree = newTrees[i] = new HaarFeatureNode[tree.Length]; for (var j = 0; j < newTree.Length; j++) { newTree[j] = (HaarFeatureNode)tree[j].Clone(); } } var r = new HaarCascadeStage(); r.NextIndex = NextIndex; r.ParentIndex = ParentIndex; r.Threshold = Threshold; r.Trees = newTrees; return(r); }
/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// <returns> /// A new object that is a copy of this instance. /// </returns> /// public object Clone() { var r = new HaarFeatureNode(); r.Feature = (HaarFeature)Feature.Clone(); r.Threshold = Threshold; r.RightValue = RightValue; r.LeftValue = LeftValue; r.LeftNodeIndex = _leftNodeIndex; r.RightNodeIndex = _rightNodeIndex; return(r); }