Função : Fazer um conjunto de dados requer muitas fotos, você pode gravar um vídeo e salvar as fotos do vídeo, e essas fotos podem ser usadas para fazer um conjunto de dados
Ideia: O código usa a biblioteca OpenCV para ler o vídeo e exibir e salvar a imagem . Primeiro, leia um arquivo de vídeo e exiba imagens em cada quadro de vídeo. Ao mesmo tempo, permita que o usuário pressione a barra de espaço para salvar alguns quadros do vídeo como imagens. O programa sairá e fechará todas as janelas depois que n imagens forem salvas ou o usuário pressionar a tecla esc.
código mostra como abaixo:
# 导入OpenCV库
import cv2
# 打开视频文件
camera = cv2.VideoCapture("E:\\004_Picture\\VID_20230508_194531.mp4") # ^_^需要改目录
# 读取第一帧图像
ret, img = camera.read()
# 初始化计数器
i = 0
# 获取视频的帧率
fps = camera.get(cv2.CAP_PROP_FPS)
# 循环读取视频帧
while True:
# 读取下一帧图像
ret, img = camera.read()
# 显示当前帧
cv2.imshow("img", img)
# 等待一定的时间
key = cv2.waitKey(int(600 / fps))
# 如果用户按下空格键
if key == ord(' '):
# 计数器加1
i += 1
# 将当前帧保存为图片
cv2.imwrite('jpg/' + 'line_' + str(i) + '.jpg', img) # ^_^jpg是所在项目下创建的文件夹
# 如果计数器达到10,或者用户按下esc键, 数字的大小可以改成自己需要截取的张数
if i == 10 or key == 27:
print('esc break...')
# 释放摄像头
camera.release()
# 关闭所有窗口
cv2.destroyAllWindows()
# 退出循环
break
# 释放摄像头
camera.release()
# 关闭所有窗口
cv2.destroyAllWindows()