OpenCV는 비디오 읽기, 표시 및 저장을 실현합니다.

목차

1. 파일에서 비디오를 읽고 재생하십시오.

1.2 코드 구현

1.3 효과 표시

2. 영상을 저장하세요

2.1 코드 구현

2.2 결과 표시


1. 파일에서 비디오를 읽고 재생하십시오.

OpenCV에서는 비디오를 가져와야 하며 VideoCapture 개체를 생성하고 읽고 싶은 비디오 파일을 지정해야 합니다.

(1) 영상을 읽을 객체를 생성합니다.

cap = cv.VideoCapture(filepath) 매개변수: 비디오 파일 경로

(2) 동영상의 특정 속성

(3) 이미지가 성공적으로 읽혔는지 확인합니다.

(4) 비디오 프레임 가져오기

(5) 이미지를 표시하려면 cv.imshow를 호출합니다. 이미지를 표시할 때 cv.waitkey()를 사용하여 적절한 지속 시간을 설정합니다. 너무 낮으면 비디오가 매우 빠르게 재생되고, 너무 높으면 재생됩니다. 매우 천천히 일반적으로  25ms  로 설정됩니다.

(6) cap.release()를 호출하여 비디오를 공개합니다.

1.2 코드 구현

import numpy as np
import cv2 as cv

#获取视频对象
cap = cv.VideoCapture(r'E:\All_in\opencv\video.mp4')
#判断是否读取成功

while(cap.isOpened()):
    #获取某一帧图像
    ret , frame = cap.read()
    #获取成功显示图像
    if ret == True:
        cv.imshow('frame',frame)
    #每一帧间隔25ms
    if cv.waitKey(25)& 0xFF == ord('q'):
        break

#释放视频对象
cap.release()
cv.destroyWindow()

1.3 효과 표시

2. 영상을 저장하세요

2.1 코드 구현

import cv2 as cv
import numpy as np

#读取视频
cap = cv.VideoCapture(r'E:\All_in\opencv\video.mp4')

#获取图像的属性(宽和高),并将其转化为整数
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))

#创建保存图像的对象 , 设置编码格式,帧率,图像的宽 高等
'''函数第一个参数为输出文件路径,因为我们想保存为AVI格式,所以要指定编码格式为'M','J','P','G'(MJPEG压缩)
,帧率设置为10,视频帧的宽高设置为前面获取到的frame_width和frame_height。'''
out = cv.VideoWriter('outpy.avi',cv.VideoWriter_fourcc('M','J','P','G'),10,(frame_width,frame_height))
while(True):
    #获取视频中每一帧图像
    ret ,frame= cap.read()
    if ret==True:
        #将每一帧图像写入输出文件中
        out.write(frame)
    else:
        break

#释放资源
cap.release()
out.release()
cv.destroyAllWindows()

2.2 결과 표시

추천

출처blog.csdn.net/qq_53545309/article/details/133465326