labelImg无法查看标注信息(有xml文件却不显示信息框),已解决!!!(含修改代码)
Open Dir和Change Save Dir都设置的没问题,发现图片有标注好的xml文件却在labelImg中无法显示bbox,解决此问题
·
最近在网上下载了一些数据集,想看一下图像的标注信息。
Open Dir和Change Save Dir都设置的没问题,发现图片有标注好的xml文件却在labelImg中无法显示bbox,如图所示:


然后我自己标注了一张图片,查看两个xml文件有什么不同,发现有如下不同:用我的labelImg标注产生的xml文件的开头包含对应的“图片名称”和“图片路径”,而我从网上下载的数据集却缺少这两项,以致于图片和xml无法匹配,无法在labelImg中显示标注信息。如下图所示:frame_10692是自己标注的一张图片,可以显示bbox,flv2是网上下载的,不能显示。


我手动给xml加上了缺少的内容之后,就可以显示标注的信息了。


显示出标注信息了!!!
接下来只需要用代码遍历xml文件,加上对应的文字就行了!!!
批量修改xml文件项目的结构如图所示:


xmlWrite.py代码如下:
import os
import xml.etree.ElementTree as ET
folder_path = "box0/"
# 遍历文件夹中的每个xml文件
for filename in os.listdir(folder_path):
if filename.endswith(".xml"):
xml_file_path = os.path.join(folder_path, filename)
# 解析xml文件
tree = ET.parse(xml_file_path)
root = tree.getroot()
# 创建新的元素
filename_element = ET.Element("filename")
filename_element.text = f"{os.path.splitext(filename)[0]}.jpg"
path_element = ET.Element("path")
path_element.text = f"C:\\Users\\liyi0527\\Desktop\\cesao\\image\\{os.path.splitext(filename)[0]}.jpg"
# 向根元素中添加新的元素
root.insert(0, filename_element)
root.insert(1, path_element)
# 将修改后的xml写回文件
tree.write(xml_file_path)
print("Done!")
成功解决!欢迎交流沟通!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)