请问各位同学,为什么labelimg打完标签并保存后,切换到下一张图片,会显示上一个图片的框,删除或修改这个框,上一个图片的标签也会随之更改?


请问各位同学,为什么labelimg打完标签并保存后,切换到下一张图片,会显示上一个图片的框,删除或修改这个框,上一个图片的标签也会随之更改?


阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你遇到的问题是labelimg工具在打完标签后,切换到下一张图片时,会显示上一个图片的框,并且删除或修改这个框时,上一个图片的标签也会随之更改。
这是因为labelimg工具使用的是文件级别的标签存储方式,而不是图片级别的存储方式。labelimg会将标签存储在一个文件中,每个文件对应一个图片。因此,当你切换到下一张图片时,labelimg会继续使用上一个图片的标签文件,这样就导致了上一个图片的标签也被应用到下一张图片上。
如果你想解决这个问题,可以尝试以下几种方法:
--save-labels选项,这个选项可以将标签存储在每个图片的文件夹中,而不是在一个文件中。--save-path选项,这个选项可以指定标签存储的路径,这样可以避免标签文件的混淆。import labelimg
# 创建labelimg对象
li = labelimg.LabelImg()
# 打标签
li.label_image('image1.jpg')
# 保存标签
li.save_labels('image1_labels.txt')
# 切换到下一张图片
li.load_image('image2.jpg')
# 删除上一个图片的框
li.delete_box()
# 保存标签
li.save_labels('image2_labels.txt')
在上面的代码示例中,我们使用labelimg对象来打标签,并将标签保存到文件中。然后,我们切换到下一张图片,并删除上一个图片的框。最后,我们保存标签到新的文件中。