imglab使用:
imglab程序网盘地址:
链接:https://pan.baidu.com/s/1G2ui4TyM3pgJ3pjjH7ygSA
提取码:70c7
获取图片列表:./XXX/imglab.exe(imglab位置) -c ./XXX/(文件名).xml (图片所在的文件夹) (多个文件夹......)
标注图片:./XXX/imglab.exe(imglab位置) ./XXX/(文件名).xml
注意:不会自动保存,不要忘了保存!!!
tips:
- 按住shift键、单击鼠标左键并拖动来添加一个新的矩形。在矩形右下角显示,编辑好的标签。
- 按住shift键,右键矩形边框调整矩形
- 双击选中框,shift+左键标注特征点、shift+右键修改特征点
- 删除:选中框+del
- 缩放:ctrl+鼠标滚轴
- 删除当前图片:alt+del
- 当前图片的标注顺延至下一张图片:shift +
读取.xml文件实例
.xml文件部分:
例子的.xml文件之含有框信息,readxml文件实现的是求框的中点。
#box top + left 左上角的点
<?xml version='1.0' encoding='ISO-8859-1'?>
<?xml-stylesheet type='textl' href='image_metadata_stylesheet.xsl'?>
<dataset>
<name>imglab dataset</name>
<comment>Created by imglab tool.</comment>
<images>
<image file='left\P_20_-10_-10_6_L01.bmp'>
<box top='74' left='19' width='170' height='80'/>
</image>
<image file='left\P_20_-10_-15_6_L01.bmp'>
<box top='93' left='22' width='171' height='64'/>
</image>
<image file='left\P_20_-10_-20_6_L01.bmp'>
<box top='84' left='17' width='175' height='75'/>
</image>
<image file='left\P_20_-10_-25_6_L01.bmp'>
<box top='91' left='23' width='166' height='74'/>
readxml.py,保存信息在mark.txt文件中。
import xml.etree.ElementTree as ET # 读取xml。
import os
from PIL import Image, ImageDraw, ImageFont
source_path = 'F:/DataDeal/mark'
savefilename = 'F:/DataDeal/' + 'mark.txt'
if __name__ == "__main__":
data = []
with open(savefilename, 'w') as write_file_handler:
for root, dirs, files in os.walk(source_path):
for file in files:
dirpath = 'F:/DataDeal/mark/' + file
tree = ET.parse(dirpath) # 解析读取xml函数
id = file.split('_')[0]
root = tree.getroot()
for i in range(len(root[2])):
c_x = int(root[2][i][0].attrib['left']) + int(int(root[2][i][0].attrib['width'])/2)
c_y = int(root[2][i][0].attrib['top']) + int(int(root[2][i][0].attrib['height'])/2)
data.append(id + '\\' + root[2][i].attrib['file'] + ' ' + str(c_x) + ' ' + str(c_y))
data.append('\n')
write_file_handler.writelines(data)