labelImg ZeroDivisionError: float division by zero 问题定位和解决方案

一、前沿

labelImg的使用和安装这里不过多讲解,网上一堆教程。

二、问题以及解决方案

2.1 问题如下:

Traceback (most recent call last):
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\labelImg\labelImg.py", line 1250, in openNextImg
    self.saveFile()
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\labelImg\labelImg.py", line 1290, in saveFile
    self._saveFile(savedPath)
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\labelImg\labelImg.py", line 1322, in _saveFile
    if annotationFilePath and self.saveLabels(annotationFilePath):
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\labelImg\labelImg.py", line 802, in saveLabels
    self.lineColor.getRgb(), self.fillColor.getRgb())
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\libs\labelFile.py", line 83, in saveYoloFormat
    writer.save(targetFile=filename, classList=classList)
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\libs\yolo_io.py", line 70, in save
    classIndex, xcen, ycen, w, h = self.BndBox2YoloLine(box, classList)
  File "g:\mytoolsinstall\anaconda3\lib\site-packages\libs\yolo_io.py", line 37, in BndBox2YoloLine
    xcen = float((xmin + xmax)) / 2 / self.imgSize[1]
ZeroDivisionError: float division by zero

2.2 定位原因

2.2.0、从代码来看 主要是:xcen = float((xmin + xmax)) / 2 / self.imgSize[1] ZeroDivisionError: float division by zero 这个里边 self.imgSize[1]==0
2.2.1、而这行代码的源码位置在:
在这里插入图片描述
2.2.2、那么便去寻找 调用 YOLOWriter 类,传递参数的函数
在这里插入图片描述
结论:

不难怀疑:QImage 读图出现了 问题,解决方案 使用 openCv 替换掉 QImage

2.3 解决问题

labelFile.py文件里边修改

image = QImage()
image.load(imagePath)
imageShape = [image.height(), image.width(),
              1 if image.isGrayscale() else 3]
if imageShape[0] == 0:  // 如果读图 高/宽 为 0 那么便再用 cv2重新读图。
    img = cv2.imread(imagePath)
    imageShape = [img.shape[0], img.shape[1], img.shape[2]]

三、结论

问题:为什么 QImage 读图 宽高 全为 0?
    网上给出原因是 打开某些图片时候,背景为透明的那种,会出现size为 0 的情况。
结论:
    这边还是认为自己可以根据 源码先去定位原因,然后找出解决方案

四、参考链接:

网上查询相关的issue,有人提出同样的问题,下面有相应的回答。

https://github.com/tzutalin/labelImg/issues/386
https://github.com/tzutalin/labelImg/issues/462

猜你喜欢

转载自blog.csdn.net/weixin_42812527/article/details/106213985
今日推荐