0

使用 EMGUCV,对于 C#,可以将 Matrix 保存为 XML,以便以后读取。由于 VectorOfKeyPoint 是一个 Serializable 类,它也可以保存到 XML 文件中。尽管如此,当它打开时,这个 UnmanagedObject VectorOfKeyPoint 是空的,不能使用。

是否有可能以这种方式做某事,也就是说,为了从 XML 加载 VectorOfKeyPoint 并以相同的方式使用它?

如今,如 EMGU Wiki 中所述,工作代码已更改为 VectorOfKeyPoint:

从/到 XML 解析

4

1 回答 1

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);
于 2013-01-03T19:23:52.050 回答