[CV2] [Conjunto de dados] Código para converter vídeo em imagens

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()

Acho que você gosta

Origin blog.csdn.net/weixin_49601301/article/details/130568063
Recomendado
Clasificación