请问这个怎么调回原始大小
615
2022-05-30
文章目录
接口文档
打开摄像头
播放本地视频
录制视频
接口文档
VideoCapture Object
VideoWriter Object
cv2.cvtColor()
打开摄像头
使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号,如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1,依此类推。
import cv2 # capture = cv2.VideoCapture(0) if None == capture: print("摄像头打开失败") while(True): # 获取一帧 ret, frame = capture.read() if ret == False: continue # 将这帧转换为灰度图 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) if cv2.waitKey(1) == ord('q'): break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
VideoCaptureProperties
cv2.CAP_PROP_POS_MSEC
视频文件的当前位置(毫秒)。
cv2.CAP_PROP_POS_FRAMES
下一步要解码/捕获的帧的基于0的索引。
cv.2CAP_PROP_POS_AVI_RATIO
视频文件的相对位置:0=胶片开始,1=胶片结束。
import cv2 #打开 0号摄像头 capture = cv2.VideoCapture(0) # 获取捕获的分辨率 # 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, height * 2) # 某些摄像头设定分辨率等参数时会无效,因为它有固定的分辨率大小支持,一般可在摄像头的资料页# 中找到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
播放本地视频
播放视频其实跟打开摄像头的操作一样
我们也可以获取视频分辨率、帧率、当前播放帧等等信息,可以查看
VideoCapture Object
结构就可以看到信息了~~~~~~~~~~
eg:
import cv2 # 播放本地视频 capture = cv2.VideoCapture('wzry.mp4') #打印一些视频的信息 print(capture.get(cv2.CAP_PROP_POS_MSEC)) width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT) print("分辨率:%f,%f"%(width,height)) print("休息一会") while(capture.isOpened()): ret, frame = capture.read() if False == ret: print("视频播放完毕~~~") break gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) if cv2.waitKey(30) == ord('q'): print("手动退出了~~~~") break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
录制视频
关于视频四字节码,可以去这个网站查看
http://www.fourcc.org/codecs.php
如下功能是读取一个视频,转存成另一个视频
import cv2 # 定义编码方式并创建VideoWriter对象 # 指定视频编码方式的四字节码 ''' cv2.VideoWriter_fourcc('P','I','M','1') = MPEG-1 codec cv2.VideoWriter_fourcc('M','J','P','G') = motion-jpeg codec --> mp4v cv2.VideoWriter_fourcc('M', 'P', '4', '2') = MPEG-4.2 codec cv2.VideoWriter_fourcc('D', 'I', 'V', '3') = MPEG-4.3 codec cv2.VideoWriter_fourcc('D', 'I', 'V', 'X') = MPEG-4 codec --> avi cv2.VideoWriter_fourcc('U', '2', '6', '3') = H263 codec cv2.VideoWriter_fourcc('I', '2', '6', '3') = H263I codec cv2.VideoWriter_fourcc('F', 'L', 'V', '1') = FLV1 codec ''' #视频读取 capture = cv2.VideoCapture('wzry.mp4') #获取FPS video_fps = capture.get(cv2.CAP_PROP_FPS) #获取宽度、高度 video_width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) video_height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT) video_size =(int(video_width),int(video_height)) #获取视频编码方式的四字节码 codec = capture.get(cv2.CAP_PROP_FOURCC) #strcodec = chr(codec&0xFF) + chr((codec>>8)&0xFF) + chr((codec>>16)&0xFF) + chr((codec>>24)&0xFF) #print ('codec is ' + strcodec) outfile = cv2.VideoWriter('output.mp4', int(codec), video_fps, video_size) while(capture.isOpened()): ret, frame = capture.read() if ret: outfile.write(frame) # 写入文件 cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'): break else: break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
OpenCV Python 视频
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。