labelImg ZeroDivisionError: float division by zero解決辦法

問題

做目標檢測數據集的時候,需要用到目標檢測標記工具。目前使用的是labelImg,該項目地址:
https://github.com/tzutalin/labelImg
使用方法在網上搜索有一大堆,這裏不做過多的介紹。
使用頁面如下所示:
在這裏插入圖片描述
在使用的過程中,框選相關部分後,程序閃退,然後終端提示錯誤信息如下:

xcen = float((xmin + xmax)) / 2 / self.imgSize[1]
ZeroDivisionError: float division by zero

網上查詢相關的issue,有人提出同樣的問題,下面有相應的回答。

解決方法

問題出現的原因是該軟件在打開某些圖片時候,背景爲透明的那種,會出現size爲0的情況,解決辦法是用opencv打開後,再重新保存覆蓋原文件即可,代碼如下:

import sys
import cv2

input_file = sys.argv[1]  # 支持批量操作
with open(input_file, 'r') as f:
    for line in f:
        img_name = line.rstrip('\n')
        img = cv2.imread(img_name)
        save_path = img_name
        cv2.imwrite(save_path, img)  # 可以加quality參數

上述代碼支持批量操作,直接將整個文件夾下的文件名輸入進去即可。進行覆蓋保存,再次打開軟件處理這些圖片,不會報這一個錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章