1 import cv2 as cv 2 import numpy as np 3 4 5 def video_demo(): 6 capture = cv.VideoCapture(0) #打开摄像头,参数0代表设备ID(设备表示号),也就是电脑自带的摄像头,人如果要设置成其他摄像头,可以更改这个参数 7 while(True): 8 ret,frame = capture.read() #读取摄像头,它能返回两个参数,第一个参数是bool 型的ret,其值为True或者False,代表有没有读到图片;第二个参数frame,表示读取当前一帧的图片 9 frame = cv.flip(frame,1) #翻转 等于0:上下颠倒 大于0:水平颠倒 小于0:180旋转 10 cv.imshow("video",frame) 11 c = cv.waitKey(10) 12 if c == 27:
break # 这里代码的意思是按下esc键就会把这个捕捉到的视频图片关闭掉 或者也可以按下q 键来关闭视频图片,但是代码是这样写 cv.waitKey(10) & 0xff == ord('q')
15 video_demo()
16 cv.waitKey(0)
17 18 cv.destroyWindows()
注意:上面那个捕捉到摄像头的视频,点击窗口关闭是关闭不了的,而且当你修改图片翻转方式的时候,你再执行代码的话会有代码报错,因为他是一个死循环,所以你必须按照上面说的那样,才能实现视频翻转调节功能,这里一定要注意,一开始,自己以为写的代码有bug,后来注意到了这里,不是代码的原因,这里涉及到个人隐私问题,就不拿视频照片举列子了,按照我上面说了,操作就完全没问题,哈哈哈。
接下来操作一个读取视频文件:
1 import cv2 as cv 2 3 def capture_video(): 4 capture = cv.VideoCapture('D:/tt.avi') #这里面的参数是视频资源路径 5 while True: 6 ret ,frame=capture.read() 7 if not ret: 8 break 9 cv.imshow('video',frame) 10 c = cv.waitKey(50) 11 if c == 27 : 12 break 13 t1=cv.getTickCount() 14 15 capture_video() 16 17 t2=cv.getTickCount() 18 19 print('the time is : %s ms'%((t2-t1)/cv.getTickFrequency()*1000)) 20 21 cv.waitKey(-1) 22 cv.destoryAllWindows()
通过上面操作就可以实现读取视频文件了,但是有一个缺点,就是读取的视频文件播放没有声音,目前还不知道怎样加载出声音来,hh 。