赞
踩
一、打开摄像头
import cv2
#打开摄像头并灰度化显示
capture =cv2.VideoCapture(0)while(True):#获取一帧
ret, frame =capture.read()#将这帧转换为灰度图
gray =cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)#如果输入q,则退出
if cv2.waitKey(1) == ord('q'):break
cv2.VideoCapture(0)创建VideoCapture对象,参数0表示摄像头编号,如果你有两个摄像头,也可以传入1
#获取捕获的分辨率#propId可以直接写数字,也可以用OpenCV的符号表示
width, height = capture.get(3), capture.get(4)print(width, height)#以原分辨率的一倍来捕获
capture.set(cv2.CAP_PROP_FRAME_WIDTH, width * 2)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, width* 2)
想了解完整的属性列表可以参考:
VideoCaptureProperties。
也可以使用cap.set(propId, value)来修改属性值
二、播放本地视频
#播放本地视频
capture = cv2.VideoCapture('4.视频展台的使用视频.mp4')while(capture.isOpened()):
ret, frame=capture.read()
gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)if cv2.waitKey(30) == ord('q'):break
和打开摄像头一样,把摄像头编号换成视频的路径就可以播放本地视频。cv2.waitKey的参数0表示无限等待,数值越大,视频播放越慢,反之,则越快。通常设置25到30
三、录制视频
保存图片使用的是cv2.imwrite(),要保存视频,需要创建一个VideoWriter对象,需要传入四个参数
输出的文件名,如’output.avi’
编码方式FourCC码
帧率FPS
要保存的分辨率大小
FourCC是用来指定视频编码方式的四字节码
capture =cv2.VideoCapture(0)#定义编码方式并创建VideoWriter对象
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
outfile= cv2.VideoWriter('output.avi', fourcc, 25., (640, 480))while(capture.isOpened()):
ret, frame=capture.read()ifret:
outfile.write(frame)#写入文件
cv2.imshow('frame', frame)if cv2.waitKey(1) == ord('q'):break
else:break
四、小结
使用cv2.VideoCapture()创建视频对象,然后在循环中一帧一阵显示图像
cap.get(propId)获取视频属性,cap.set(propId, value)设置视频属性
cv2.VideoWriter()创建视频写入对象,用来录制、保存视频
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。