OpenCV中的XML解析器

时间:2012-02-11 05:13:49

标签: c xml opencv xml-parsing

我有一个文件locations.xml,其中包含图像文件名,以及在相应图像上绘制的矩形位置。 XML节点结构如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<tagset>
  <image>
    <imageName>ryoungt_05.08.2002/aPICT0034.JPG</imageName>
    <resolution x="960" y="1280" />
    <taggedRectangles>
      <taggedRectangle x="196.0" y="901.0" width="111.0" height="67.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="116.0" y="896.0" width="59.0" height="69.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="442.0" y="794.0" width="424.0" height="67.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="212.0" y="793.0" width="200.0" height="66.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="99.0" y="560.0" width="302.0" height="76.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="107.0" y="791.0" width="84.0" height="66.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="512.0" y="682.0" width="366.0" height="74.0" offset="0.0" rotation="0.0" userName="admin" />
      <taggedRectangle x="104.0" y="678.0" width="376.0" height="73.0" offset="0.0" rotation="0.0" userName="admin" />
    </taggedRectangles>
  </image>

我需要在OpenCV中打开此文件并读取它,以便对于XML文件中的每个图像文件名,相应的图像将在窗口中打开,矩形将绘制在相应的图像上。

基本上我需要打开这些文件并使用文本检测算法查看矩形以使它们与在相同图像上绘制的矩形相匹配。但它正在处理让我难过的XML文件。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

OpenCV是OpenCV,XML是XML。一个与另一个没什么关系。

检查此帖子

What is the best open XML parser for C++?

我个人使用pugixml而且我满意

答案 1 :(得分:0)

OpenCV的{​​{3}}支持XML,YAML和JSON文件格式

您可以直接将XML反序列化为OpenCV对象。 看一下示例some (de-)serialization tool

但这仅在双方都涉及OpenCV时才有用。 XML解析器需要<opencv_storage>标记。