示例#1
0
        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(" )");
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }