使用EMGUCV,对于C#,可以将Matrix保存到XML,以便以后阅读。 由于VectorOfKeyPoint是Serializable类,因此它也可以保存为XML文件。 尽管如此,当它打开时,此UnmanagedObject VectorOfKeyPoint为空并且无法使用。
是否有可能以这种方式做某事,这意味着,为了从XML加载VectorOfKeyPoint并以相同的方式使用它?
如今,工作代码,如EMGU Wiki中所述,但为VectorOfKeyPoint而改变:
答案 0 :(得分:2)
终于能够做到了。
不是序列化VectorOfKeyPoint本身(不起作用),而是可以序列化它的点。
例如
序列化:
VectorOfKeyPoint vectorOfKeyPoints = new VectorOfKeyPoint();
StringBuilder sb = new StringBuilder();
MKeyPoint[] keyPoints = vectorOfKeyPoints.ToArray();
(new XmlSerializer(typeof(MKeyPoint[]))).Serialize(new StringWriter(sb), keyPoints);
xmlKeyPoints = sb.ToString();
反序列化:
XmlReader xmlReader = XmlReader.Create(new StringReader(xmlStr));
MKeyPoint[] arrayOfKeyPoints = (MKeyPoint[])(new XmlSerializer(typeof(MKeyPoint[]))).Deserialize(xmlReader);
VectorOfKeyPoint vectorOfKeyPoints = new VectorOfKeyPoint();
vectorOfKeyPoints.Push(arrayOfKeyPoints);