文章目錄
- 1 讀取本地視頻
- 1.1 絕對路徑 6種方式
- 1.2 相對路徑 4種方式
- 1.3 讀取本地視頻
- 2 視頻基本信息
- 3 調用攝像頭 并將視頻保存在指定位置
P14 3-6
1 讀取本地視頻
現在要讀取本地視頻“video.mp4
”,
視頻文件“video.mp4
”和playVideo.py
腳本文件,都在同一個目錄E:\\Test_py\\opencv_python\\基本操作\\
下面。
1.1 絕對路徑 6種方式
#cap=cv2.VideoCapture("E:\\Test_py\\opencv_python\\基本操作\\video.mp4")
#cap=cv2.VideoCapture('E:\\Test_py\\opencv_python\\基本操作\\video.mp4')#cap=cv2.VideoCapture("E://Test_py//opencv_python//基本操作//video.mp4")
#cap=cv2.VideoCapture('E://Test_py//opencv_python//基本操作//video.mp4')#cap=cv2.VideoCapture("E:/Test_py/opencv_python/基本操作/video.mp4")
cap=cv2.VideoCapture('E:/Test_py/opencv_python/基本操作/video.mp4')
1.2 相對路徑 4種方式
#cap=cv2.VideoCapture('video.mp4')
#cap=cv2.VideoCapture('./video.mp4')
#cap=cv2.VideoCapture('.//video.mp4')
cap=cv2.VideoCapture('.\\video.mp4')
1.3 讀取本地視頻
import cv2
from cv2 import WINDOW_NORMAL
import numpy as np#cv2.namedWindow('video',WINDOW_NORMAL)cap=cv2.VideoCapture('video.mp4')while True:ret,frame=cap.read()cv2.imshow('video',frame)key=cv2.waitKey(20)#當按下q鍵,退出視頻,qASCII值=113,Q=81,還可以寫成ord('q')#if(key & 0xff ==ord('q')):if key in (113, 81): breakcv2.destroyWindow()
2 視頻基本信息
if(cap.read()):w=cap.get(CAP_PROP_FRAME_WIDTH)h=cap.get(CAP_PROP_FRAME_HEIGHT)fps=cap.get(CAP_PROP_FPS)count=cap.get(CAP_PROP_FRAME_COUNT)print('視頻中圖像寬度:%d' %(w))print('視頻中圖像高度:%d' %(w))print('視頻的幀率:%d' %(fps))print('視頻總幀數:%d' %(count))
3 調用攝像頭 并將視頻保存在指定位置
import cv2#創建VideoWriter為寫多媒體文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
vw = cv2.VideoWriter('./out.mp4', fourcc, 25, (1280, 720))#創建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 360)#獲取視頻設備/從視頻文件中讀取視頻幀
cap = cv2.VideoCapture(0)#判斷攝像頭是否為打開關態
while cap.isOpened():#從攝像頭讀視頻幀ret, frame = cap.read()if ret == True:#將視頻幀在窗口中顯示cv2.imshow('video', frame)#重新將窗口設備為指定大小cv2.resizeWindow('video', 640, 360)#寫數據到多媒體文件vw.write(frame)#等待鍵盤事件,如果為q,退出key = cv2.waitKey(1)if(key & 0xFF == ord('q')):breakelse:break#釋放VideoCapture
cap.release()#釋放VideoWriter
vw.release()#vw.release()
cv2.destroyAllWindows()