public static HaarCascade FromXml(TextReader stringReader)
{
XmlTextReader xmlReader = new XmlTextReader(stringReader);
// Gathers the base window size
xmlReader.ReadToFollowing("size");
string size = xmlReader.ReadElementContentAsString();
// Proceeds to load the cascade stages
xmlReader.ReadToFollowing("stages");
XmlSerializer serializer = new XmlSerializer(typeof(HaarCascadeSerializationObject));
var stages = (HaarCascadeSerializationObject)serializer.Deserialize(xmlReader);
// Process base window size
string[] s = size.Trim().Split(' ');
int baseWidth = int.Parse(s[0], CultureInfo.InvariantCulture);
int baseHeight = int.Parse(s[1], CultureInfo.InvariantCulture);
// Create and return the new cascade
return new HaarCascade(baseWidth, baseHeight, stages.Stages);
}