Esempio n. 1
0
        void IXmlSerializable.ReadXml(XmlReader reader)
        {
            reader.ReadStartElement("feature");

            reader.ReadToFollowing("rects");
            reader.ReadToFollowing("_");

            var rec = new List <HaarRectangle>();

            while (reader.Name == "_")
            {
                var str = reader.ReadElementContentAsString();
                rec.Add(HaarRectangle.Parse(str));

                while (reader.Name != "_" && reader.Name != "tilted" &&
                       reader.NodeType != XmlNodeType.EndElement)
                {
                    reader.Read();
                }
            }

            Rectangles = rec.ToArray();

            reader.ReadToFollowing("tilted", reader.BaseURI);
            Tilted = reader.ReadElementContentAsInt() == 1;

            reader.ReadEndElement();
        }
Esempio n. 2
0
 private void WriteRectangle(HaarRectangle rectangle)
 {
     _writer.Write("new int[] {{ {0}, {1}, {2}, {3}, {4} }}",
                   rectangle.X.ToString(NumberFormatInfo.InvariantInfo),
                   rectangle.Y.ToString(NumberFormatInfo.InvariantInfo),
                   rectangle.Width.ToString(NumberFormatInfo.InvariantInfo),
                   rectangle.Height.ToString(NumberFormatInfo.InvariantInfo),
                   rectangle.Weight.ToString("R", NumberFormatInfo.InvariantInfo));
 }
Esempio n. 3
0
 /// <summary>
 ///   Constructs a new Haar-like feature.
 /// </summary>
 ///
 public HaarFeature(bool tilted, params int[][] rectangles)
 {
     Tilted     = tilted;
     Rectangles = new HaarRectangle[rectangles.Length];
     for (var i = 0; i < rectangles.Length; i++)
     {
         Rectangles[i] = new HaarRectangle(rectangles[i]);
     }
 }
Esempio n. 4
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 newRectangles = new HaarRectangle[Rectangles.Length];

            for (var i = 0; i < newRectangles.Length; i++)
            {
                var rect = Rectangles[i];
                newRectangles[i] = new HaarRectangle(rect.X, rect.Y, rect.Width, rect.Height, rect.Weight);
            }

            return(new HaarFeature {
                Rectangles = newRectangles, Tilted = Tilted
            });
        }
Esempio n. 5
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 HaarRectangle
            {
                Height       = Height,
                ScaledHeight = ScaledHeight,
                ScaledWeight = ScaledWeight,
                ScaledWidth  = ScaledWidth,
                ScaledX      = ScaledX,
                ScaledY      = ScaledY,
                Weight       = Weight,
                Width        = Width,
                X            = X,
                Y            = Y
            };

            return(r);
        }