一、问题labelimg 闪退
一点w打标 labelimg就闪退
**原因 : python 版本太高 **
解决办法:单独创建一个虚拟环境用于打标
conda create -n labelimg python=3.9
二、使用python脚本切割视频
cpp
# -*- coding: utf-8 -*-
import cv2
import os
def 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 += 1
if __name__ == '__main__':
# 保存文件夹的路径
savepath = 'D:/image'
# 将一级目录下的所有文件夹的名称以列表的形式保存
dirs = 'D:/test/'
file = 'WeChat_20250219095729.mp4'
path = dirs + file
try:
video_to_frames(path, dir, file, savepath)
except Exception as e:
print(e)
使用代码切割之前dnf录屏

三、利用labelimg标注
注意点击view中自动保存

最后打标完成后修改之前脚本训练