对应的数据集为:
<?xml version="1.0"?>
-<opencv_storage>
-<vocabulary type_id="opencv-matrix">
<rows>424</rows>
<cols>512</cols>
<dt>u</dt>
<data> 0 0 0 0 0 0 0 0 0 145 169 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 205 0 0 0 0
0 0 0 0 0 0 0 0 227 0 0 158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 150 0 0 0 0 0 0 152 0 0 0 144 0 139 0 148 0 0 0 0 0 153 0 0 148 0 0 0 0 0 154 0 0 0
0 58 156 0 0 0 0 0 150 0 0 0 0 0 154 153 0 0 219 0 0 0 144 153 158 149 153 0 0 0 150
148
0 0 0 154 143 0 145 0 152 0 154 148 153 162 148 155 146 0 144 0 152 145 154 0 0 0 0 151
153 148 153 156 0 144 0 0 0 0 0 0 0 0 0 143 0 153 142 0 0 0 0 0 0 0 0 0 154 148 0 148
158 148 147 152 154 158 155 150 150 0 151 0 148 151 157 152 149 148 150 145 153 151 153
153 0 152 147 158 151 152 155 154 149 147 151 150 0 151 154 142 148 149 0 152 151 0 146
147 147 151 148 146 154 153 149 0 151 153 149 150 151 156 148 152 150 146 150 148 151
153 154 157 153 150 155 152 150 149 152 150 147 </data>
</vocabulary>
</opencv_storage>
对应的处理代码:
import numpy as np
import pandas as pd
import xml.dom.minidom
#打开xml文档
dom = xml.dom.minidom.parse('D:/xuchao.xml')
#得到文档元素对象,拿出<data>间的数据
root = dom.documentElement
cp=dom.getElementsByTagName('data')
c1=cp[0]
c2=c1.firstChild.data
#先根据换行符拆分
result=c2.split('\n')
#得到的list第一行为空,去除这行
result.remove(result[0])
#根据空格把数字拆分出来,得到每行list,切片将空值切去
b=[]
for lines in result:
c=lines.split(' ')
c=c[4:]
for j in c:
b.append(j)
#转化为mat
b=np.array(b)
#源数据得到424*512,上面数据集没有这么多元素
mat=b.reshape(424,512)
df=pd.Dataframe(mat)
部分Python用法参考: