LabelImg打开标注后,再开启图片文件夹闪退的问题(删除 .labelImgSettings 无用,无中文路径)的解决方案

问题描述:打开labelimg标注软件,经过一段时间标注,关闭标注,再开启继续标注时,软件闪退的问题!!!注(已使用很多博主提的删除 C盘user内的 .labelImgSettings 文件没有用,labelimg地址也无中文路径)

报错代码如下

(yolo3) E:\StudyTools\Pycharm\yolov5-scale>labelimg
Traceback (most recent call last):
  File "E:\StudyTools\Anaconda\conda\envs\yolo3\lib\site-packages\labelImg\labelImg.py", line 1390, in open_file
    self.load_file(filename)
.....................
  File "E:\StudyTools\Anaconda\conda\envs\yolo3\lib\site-packages\libs\yolo_io.py", line 125, in yolo_line_to_shape
    label = self.classes[int(class_index)]
IndexError: list index out of range

报错图片如图所示:

LabelImg打开标注后,再开启图片文件夹闪退的问题(删除 .labelImgSettings 无用,无中文路径)的解决方案_第1张图片

解决方法:

首先关闭终端及labelimg标注软件,

再定位报错文件:xxxxxxxx  yolo io.py文件(第二个红框是我的文件地址,每个人的不一样,根据终端报错的路径自行定位),找到如下图所示的代码段:红框为出问题代码。下图为yolo_line_to_shape的定义函数。

LabelImg打开标注后,再开启图片文件夹闪退的问题(删除 .labelImgSettings 无用,无中文路径)的解决方案_第2张图片LabelImg打开标注后,再开启图片文件夹闪退的问题(删除 .labelImgSettings 无用,无中文路径)的解决方案_第3张图片

将红框内的代码修改至如下所示:(可复制)

    def parse_yolo_format(self):
        bnd_box_file = open(self.file_path, 'r')
        for bndBox in bnd_box_file:
            class_index, x_center, y_center, w, h = bndBox.strip().split(' ')
           # label, x_min, y_min, x_max, y_max = self.yolo_line_to_shape(class_index, x_center, y_center, w, h)
            try:
                label, x_min, y_min, x_max, y_max = self.yolo_line_to_shape(class_index, x_center, y_center, w, h)
            except Exception:
                print("Exception")
                
            # Caveat: difficult flag is discarded when saved as yolo format.
            self.add_shape(label, x_min, y_min, x_max, y_max, False)

保存后,重新开启labelimg,成功!!!

 感谢博主 许 豪的文章,

labelImg 闪退、报错IndexError_Matilda55555的博客-CSDN博客

你可能感兴趣的:(labelimg标注,python)