一、問題labelimg 閃退
一點w打標 labelimg就閃退
**原因 : python 版本太高 **
解決辦法:單獨創建一個虛擬環境用于打標
conda create -n labelimg python=3.9
二、使用python腳本切割視頻
# -*- coding: utf-8 -*-
import cv2
import osdef video_to_frames(path, dir, file, savepath):# VideoCapture視頻讀取類# 抽取幀數videoCapture = cv2.VideoCapture()videoCapture.open(path)# 將視頻名稱切分為名字和后綴MP4,放在一個列表里面file = file.split('.mp4')# 將列表里面的第一個元素取出來,就是不帶后綴的名字file = file[0]n = 1# 30幀一秒,則此處為3秒切一次frametime = 30# 取出總幀數frames = videoCapture.get(cv2.CAP_PROP_FRAME_COUNT)for i in range(int(frames)):# ret是一個bool類型的數,當為True的時候將這幀照片取出保存在frame里面,反之不取出。ret, frame = videoCapture.read()if i % frametime == 0:# 截取的圖片的絕對路徑,這里我們要建立一個保存圖片的文件夾,例如D:/截圖,這里是將圖片放在一個文件夾下filename = 'D:/image' + '/' + file + '_' + str(n) + '.jpg'# 如果不想將圖片放在一個文件下,而是和源文件一樣的目錄結構用下面代碼# filename = savepath + '/' + dir + '/' + file + '_' + str(n) + '.jpg'# folder = savepath + '/' + dir# if not os.path.exists(folder): # 判斷是否存在文件夾如果不存在則創建為文件夾# os.makedirs(folder)# 將截取視頻的圖片保存到絕對路徑下面cv2.imencode('.jpg', frame)[1].tofile(filename)print(filename)n += 1if __name__ == '__main__':# 保存文件夾的路徑savepath = 'D:/image'# 將一級目錄下的所有文件夾的名稱以列表的形式保存dirs = 'D:/test/'file = 'WeChat_20250219095729.mp4'path = dirs + filetry:video_to_frames(path, dir, file, savepath)except Exception as e:print(e)
使用代碼切割之前dnf錄屏
三、利用labelimg標注
注意點擊view中自動保存
最后打標完成后修改之前腳本訓練