首页 > 编程语言 >【Python】【OpenCV】视频帧和摄像头帧操作 and 窗口显示

【Python】【OpenCV】视频帧和摄像头帧操作 and 窗口显示

时间:2023-11-21 19:36:24浏览次数:46  
标签:success Python frame CAP cv2 PROP OpenCV fps 摄像头

一、读取写入视频文件

 1 import cv2
 2 
 3 # 创建一个视屏捕获对象
 4 videoCapture = cv2.VideoCapture('AVI.avi')
 5 
 6 # 获取视频的属性值,cv2.CAP_PROP_FPS获取视频帧率
 7 fps = videoCapture.get(cv2.CAP_PROP_FPS)
 8 
 9 # cv2.CAP_PROP_FRAME_WIDTH/HEIGHT 返回float类型 获取视频帧的宽高
10 size = int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), \
11        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))
12 
13 '''
14 创建一个写入对象,将帧写入输出的视频
15 cv2.VideoWriter_fourcc()函数指定编码器为 I420
16 fps 和 size 指定输出的帧率和尺寸
17 '''
18 videoWrite = cv2.VideoWriter('Out.avi',
19                              cv2.VideoWriter_fourcc('I', '4', '2', '0'),
20                              fps, size
21                              )
22 
23 '''
24 对捕获到的视频对象进行读取帧,success表示是否成功读取一帧,frame表示当前帧。
25 循环读取写入输出视频。
26 '''
27 success, frame = videoCapture.read()
28 while success:
29        videoWrite.write(frame)
30        success, frame = videoCapture.read()

 

二、捕获摄像头帧

 1 import cv2
 2 
 3 cameraCapture = cv2.VideoCapture(0)
 4 
 5 fps = 30
 6 
 7 size = int(cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), \
 8         int(cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))
 9 
10 videoWriter = cv2.VideoWriter(
11     'OutVideo_GRAB.avi',
12     cv2.VideoWriter_fourcc('I', '4', '2', '0'),
13     fps,
14     size
15 )
16 
17 success, frame = cameraCapture.read()
18 
19 numFramesRemaining = 10 * fps
20 while success and numFramesRemaining > 0:
21     videoWriter.write(frame)
22     success, frame = cameraCapture.read()
23     numFramesRemaining -= 1

和视频的读取写入没有什么差异,都是需要先创建一个VideoCapture Object来操作,下述是细微差别:

5   Line:需要手动设置fps的值

19 Line:需要设定一个时间,numFramesRemaining代表持续捕获300个帧,而每30个帧为一秒,所以将生成一个10秒钟的视频文件

 

三、窗口显示图片

1 import cv2
2 
3 img = cv2.imread('CopyPic.png')
4 cv2.imshow('', img)
5 cv2.waitKey()
6 cv2.destroyAllWindows()

 

 

四、窗口显示视频

标签:success,Python,frame,CAP,cv2,PROP,OpenCV,fps,摄像头
From: https://www.cnblogs.com/vangoghpeng/p/17847357.html

相关文章

  • Python——第三章:函数的返回值
    函数的返回值:函数执行之后.会给调用方一个结果.这个结果就是返回值关于return:    函数只要执行到了return.函数就会立即停止并返回内容.函数内的return的后续的代码不会执行    1.如果函数内没有return,此时外界收到的是None    2.如果写了re......
  • 聪明办法学Python_task1_11.20-11.21
    聪明办法学Python_task1_11.20-11.211.task011.1Python灵魂三问1.2Python环境配置2.task022.1注释2.2基本控制台输出2.3错误2.4基本控制台输入2.5导入模块1.task01:Python简介/安装1.1Python灵魂三问为什么学Python?Python是全球最流行的编程语言......
  • Vscode怎么指定Python解释器
    Windows使用Vscode编写Python代码默认使用系统手动安装的设置在环境变量的Python解释器,如果需要修改称虚拟解释器conda则可以使用以下方法软件中央上部选择"显示并运行命令"Python:选择解释器选择需要的解释器......
  • Python 中函数 range
    range函数简要说明接收参数为1/2/3,表示的是左闭右开接收参数当使用Python中的range()函数时,可以总结如下使用方法:range(stop):生成从0到stop-1的整数序列。产生的序列包含起始值0,但不包含stop。foriinrange(5):print(i)输出:01234range(start,stop):生成......
  • python连接数据库到excel 第二回
    #使用前建议看一下sqllalchemy和create_engine,主要就是数据库拉数据导入excel#下面是代码部分fromsqlalchemyimportcreate_engine,text#利用sqlalchemy顺带用create_engine,text区分大小写importpandasaspd#表host='cs-'user='root'password='6Ep'db='perf......
  • python学习第二天笔记(未完成)
    #python(11.20--11.21)数数从0开始,左闭右开,不输默认。注意行对齐##注释:#单行注释“”“多行注释”“”##类型intstr(字符串,单个字符使长度为1的字符串)float(默认双精度)list注释:同一段代码对当变量类型不同时会产生不同的效果:譬如print(a+b)当a="1"b="2"......
  • Python为什么执行效率低,性能不如其他语言?
    Python是一种解释型语言,它的执行效率通常比编译型语言低,这主要有以下几个原因:解释型语言的性质:Python是解释型语言,这意味着它在运行时需要解释器来逐行翻译并执行代码。这个过程中,相对于编译型语言(如C++或Java),会产生额外的性能开销。动态类型:Python是动态类型的语言,这意......
  • Python爬虫技巧:百万级数据怎么爬取?
    前言在实际的爬取过程中,我们经常会遇到一些需要大量爬取数据的情况,比如爬取某个网站的所有用户信息或者某个行业的所有产品信息等等。在这些情况下,我们需要优化我们的爬虫策略,提高我们的数据爬取效率,同时需要注意避免被目标网站封禁。本文将分享一些Python爬虫处理百万级数据的技巧......
  • 【Python】geopandas 读取 shp/geojson 边界文件
    1.读取shp/geojson边界文件importgeopandasasgpdfile='media/abc.geojson'gdf=gpd.read_file(file)#将GeoDataFrame转换为GeoJSON字符串geojson=json.loads(gdf.to_json())features=geojson['features']2.获取边界文件的网格范围importgeopandas......
  • 【Python】pandas 读取 后向轨迹文件
    importpandasaspdfrompathlibimportPathdefbackwardtrace(file:str):ifnotPath(file).is_file():raiseValueError('Filedoesnotexist!')else:res=[]withopen(file)asf:line=f.readline......