RichardHYT 2025-06-13 22:15 采纳率: 100%
浏览 33
已结题

labelimg打标签后,下一张图片也被打上了一样的标签

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

img

img

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-06-13 22:16
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    labelimg打标签后,下一张图片也被打上了一样的标签

    你遇到的问题是labelimg工具在打完标签后,切换到下一张图片时,会显示上一个图片的框,并且删除或修改这个框时,上一个图片的标签也会随之更改。

    这是因为labelimg工具使用的是文件级别的标签存储方式,而不是图片级别的存储方式。labelimg会将标签存储在一个文件中,每个文件对应一个图片。因此,当你切换到下一张图片时,labelimg会继续使用上一个图片的标签文件,这样就导致了上一个图片的标签也被应用到下一张图片上。

    如果你想解决这个问题,可以尝试以下几种方法:

    1. 使用labelimg的--save-labels选项,这个选项可以将标签存储在每个图片的文件夹中,而不是在一个文件中。
    2. 使用labelimg的--save-path选项,这个选项可以指定标签存储的路径,这样可以避免标签文件的混淆。
    3. 使用其他图像标注工具,例如OpenCV、Pillow等,这些工具可以提供更灵活的标注方式。

    代码示例

    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对象来打标签,并将标签保存到文件中。然后,我们切换到下一张图片,并删除上一个图片的框。最后,我们保存标签到新的文件中。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日