文章目录
- [1 读取本地视频](#1 读取本地视频)
-
- [1.1 绝对路径 4种方式](#1.1 绝对路径 4种方式)
- [1.2 相对路径 4种方式](#1.2 相对路径 4种方式)
- [1.3 读取本地视频](#1.3 读取本地视频)
- [2 视频基本信息](#2 视频基本信息)
- [3 调用摄像头](#3 调用摄像头)
P14 3-6
1 读取本地视频
1.1 绝对路径 4种方式
python
复制代码
#cap=cv2.VideoCapture('E:\\Python\\opencv-master源码\\opencv-master\\opencv\\轮廓\\video.mp4')
#cap=cv2.VideoCapture("E:\\Python\\opencv-master源码\\opencv-master\\opencv\\轮廓\\video.mp4")
#cap=cv2.VideoCapture('E:/Python/opencv-master源码/opencv-master/opencv/轮廓/video.mp4')
cap=cv2.VideoCapture("E:/Python/opencv-master源码/opencv-master/opencv/轮廓/video.mp4")
1.2 相对路径 4种方式
1.3 读取本地视频
python
复制代码
import cv2
from cv2 import WINDOW_NORMAL
import numpy as np
# cv2.namedWindow('video',WINDOW_NORMAL)
cap=cv2.VideoCapture("E:/Python/opencv-master源码/opencv-master/opencv/轮廓/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 == 113):
break
cv2.destroyWindow()
2 视频基本信息
python
复制代码
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 调用摄像头
python
复制代码
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')):
break
else:
break
#释放VideoCapture
cap.release()
#释放VideoWriter
vw.release()
#vw.release()
cv2.destroyAllWindows()