Python 비디오 작업 - Python은 비디오 읽기 및 저장을 실현합니다.

파이썬 읽기 및 비디오 저장

내용은 블로그 + 블로그 에서 나옵니다 ~

비디오 읽기

cv2 라이브러리를 사용하는 장점은 반환이 변환 없이 임의적이라는 점인데 이 메서드는 처음부터 끝까지 읽는다.

cv2 라이브러리를 사용하여 비디오를 읽으면 코드는 다음과 같이 구현됩니다.

import cv2

cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')

while(cap.isOpened()):
    # ret返回布尔值
    ret, frame = cap.read()
    # 展示读取到的视频矩阵
    cv2.imshow('image', frame)
    # 键盘等待
    k = cv2.waitKey(20)
    # q键退出
    if k & 0xff == ord('q'):
        break

# 释放资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()

비디오 읽기 및 저장

  1. 비디오 읽기
  2. 각 프레임 처리
  3. 비디오 저장
import cv2

# VideoCapture方法是cv2库提供的读取视频方法
cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')
# 设置需要保存视频的格式“xvid”
# 该参数是MPEG-4编码类型,文件名后缀为.avi
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# 设置视频帧频
fps = cap.get(cv2.CAP_PROP_FPS)
# 设置视频大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# VideoWriter方法是cv2库提供的保存视频方法
# 按照设置的格式来out输出
out = cv2.VideoWriter('C:\\Users\\xxx\\Desktop\\out.avi',fourcc ,fps, size)

# 确定视频打开并循环读取
while(cap.isOpened()):
    # 逐帧读取,ret返回布尔值
    # 参数ret为True 或者False,代表有没有读取到图片
    # frame表示截取到一帧的图片
    ret, frame = cap.read()
    if ret == True:
        # 垂直翻转矩阵
        frame = cv2.flip(frame,0)

        out.write(frame)

        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 释放资源
cap.release()
out.release()
# 关闭窗口
cv2.destroyAllWindows()

cv2.waitKey()는 키보드 바인딩 함수입니다. 시간 측정은 밀리초 ms입니다. 함수는 키보드 입력이 있는지 확인하기 위해 (n) 내부에서 n밀리초 동안 기다립니다. 키보드 입력이 있으면 키의 ASCII 값을 반환합니다. 키보드 입력이 없으면 -1을 반환하며 일반적으로 0으로 설정하면 무선으로 키보드 입력을 기다립니다.

cv2.VideoWriter_fourcc() 함수

fourcc는 4개의 문자 코드(4자 코드)를 의미하며 코드는 4개의 문자로 구성됩니다. 다음은 VideoWriter_fourcc 개체의 일부 일반적으로 사용되는 매개변수입니다.

참고: 문자 순서는 혼합할 수 없습니다.

  • cv2.VideoWriter_fourcc('I','4','2','0'), 매개변수는 YUV 인코딩 유형, 파일 이름 접미사는 .avi
  • cv2.VideoWriter_fourcc('P','I','M','I'), 매개변수는 MPEG-1 인코딩 유형, 파일 이름 접미사는 .avi
  • cv2.VideoWriter_fourcc('X','V','I','D'), 매개변수는 MPEG-4 인코딩 유형, 파일 이름 접미사는 .avi
  • cv2.VideoWriter_fourcc('T','H','E','O'), 매개변수는 Ogg Vorbis, 파일 이름 접미사는 .ogv
  • cv2.VideoWriter_fourcc('F','L','V',1), 매개변수는 Flash 비디오, 파일 이름 접미사는 .flv

cv2.flip() 함수

문법:

cv2.flip(src, flipCode[, dst]) #src为要操作的图像

플립코드 사용 방법:

flipCode=-1        #水平垂直翻转
flipCode= 0        #垂直翻转
flipCode= 1        #水平翻转

애플리케이션:

cv2.imshow('img1',cv2.flip(img,-1))#水平垂直翻转
cv2.imshow('img2',cv2.flip(img,0))#垂直翻转
cv2.imshow('img3',cv2.flip(img,1))#水平翻转

여기에 이미지 설명 삽입

2021년 8월 23일에 처음 작성되었습니다.

추천

출처blog.csdn.net/weixin_52777510/article/details/119872183