import cv2 as cv
capture = cv.VideoCapture(0)
while True:
ret,frame = capture.read()
frame = cv.flip(frame,1)
cv.imshow("Video",frame)
c = cv.waitKey(1)
if c == 27:
break
capture.release()
cv.destroyAllWindows()
- VideoCapture()中参数是0,表示打开笔记本的内置摄像头;如果你想播放一个mp4视频,可以将视频的路径传入空号内,比如capture = cv.VideoCapture(’…/demo.mp4’)
- capture.read()按帧读取视频,ret,frame是cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵。
- cv.flip()表示将屏幕反转,参数为fram和1,Fram表示视频的每一帧,1表示水平方向翻转,可以选择不同形式的反转,比如,0 — 垂直方向翻转;-1:水平、垂直方向同时翻转
- waitKey()方法本身表示等待键盘输入,参数是1,表示延时1ms切换到下一帧图像,对于视频而言;参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27,即当按esc键是if条件句成立