获取视频帧数和总帧数
获取视频帧数和总帧数代码
import cv2
videoPath=input("请输入视屏文件的绝对路径:")
# 将视频文件路径转化为标准的路径
videoPath=videoPath.replace("\\","/").replace('"','').replace("'","").strip()
# 视屏获取
videoCapture=cv2.VideoCapture(videoPath)
# 帧率(frames per second)
fps = videoCapture.get(cv2.CAP_PROP_FPS)
# 总帧数(frames)
frames = videoCapture.get(cv2.CAP_PROP_FRAME_COUNT)
print("帧数:"+str(fps))
print("总帧数:"+str(frames))
print("视屏总时长:"+"{0:.2f}".format(frames/fps)+"秒")
其他
在三维重构或其他项目中,往往需要获取每一张图片的时间戳,这时可以使用如下代码:
import time
print("{:.6f}".format(time.time()))
1
2
demo:
04-应用
import os
import cv2
import timevideoPath=input("请输入视屏文件的绝对路径:")
# 将视频文件路径转化为标准的路径
videoPath=videoPath.replace("\\","/").replace('"','').replace("'","")
# 视屏获取
videoCapture=cv2.VideoCapture(videoPath)
# 帧率(frames per second)
fps = videoCapture.get(cv2.CAP_PROP_FPS)
# 总帧数(frames)
frames = videoCapture.get(cv2.CAP_PROP_FRAME_COUNT)#图片存储地址:
pathSave="./data/rgb/"
if(os.path.exists(pathSave)!=True):os.makedirs(pathSave)#间隔多少帧取一张图片
skipNum=2 #注:间隔2帧取一个图;
count=0
f=open("./data/"+"rgb.txt","w",encoding="utf-8")
f.write("# timestamp filename\n")
while (True):ret,frame=videoCapture.read()if(ret):if(count%(skipNum+1)==0):imgName="{:.6f}".format(time.time()+1.0*skipNum/fps-0.001*skipNum)imgPath=" rgb/"+imgName+ '.png'cv2.imwrite(pathSave + imgName + '.png', frame) f.write(imgName+imgPath+"\n")count+=1
# cv2.waitKey(int(1.0*skipNum/fps*1000))cv2.waitKey(1)
# time.sleep()else:print("视屏处理完毕!")break
videoCapture.release()
f.close()
获取视频帧数和总帧数相关推荐
- poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum
poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum .lastCellNum 一.概述 1.如下图,有一个 4行 3列的excel 表格数据,用 poi 读取后,分别获取 最大 ...
- 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等)。
[题目描述] 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等). [输入] 一个整数n. [输出] 指定格式的菱形. [样例输入] 11↙ [样例输出] * *** ***** **** ...
- WORD设置从开始页数算总页数
一.设置总页数 右击总页数选择编辑域 点击域代码 复制代码 选中页码ctrl+f9 中括号内输入等于: 选中页码ctrl+f9在里面的中括号输入刚才复制的域码值NUMPAGES,后边输入减1: 右键选 ...
- java如何截取视频文件_Java获取视频时长及截取帧截图详解
前言 只是最近碰到有这方面的项目需求,所以简单 Mark 下本文.下面的示例是参考过他人分享的文章,之后本人再自行实践.调整和测试过的,希望对有这方面需求的人有所帮助. 示例 添加依赖 org.byt ...
- Uibot-Excel自动获取某个工作表的总行数、总列数,读取其全部内容
背景: Uibot自带的Excel读取区域,需要自己手动设置读取区域的范围,如果excel文件区域的范围发生了变化,就又需要手动修改,挺麻烦的.Uibot的资料不多,搜了很久没能解决问题,所以,无奈之 ...
- 如何计算摄影参数:分区基准面高程、相对航高、绝对航高、基线长度、航线间隔、航线数、每条航线的相片数、总相片数。
目录 01 什么是分区基准面高程? 1.1 那么什么是分区基准面高程呢? 1.2 为什么分区就能减小起伏? 02 什么是相对航高? 03 什么是绝对航高? 04 什么是基线长度(即摄影基线)? 05 ...
- 【js基础】js获取时间戳(Date的总毫秒数)的4种方法
1. 什么是时间戳 不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数. 2. 实现方法 2.1 valueOf() 代码: var date = new Date(); console. ...
- Python获取视屏的帧率和总帧数
Python获取视屏的帧率和总帧数 在机器学习或三维重建等项目中,需要对视频文件进行切片,转化为一张张图片,这时就需要用到Python第三方库cv2 01-cv2安装 在命令行中执行如下代码: pip ...
- layui分页组件layPage动态调整总页数
我的小工程的前端使用了layui,这也是当时临时上网查到的一个框架,感觉风格简约,而且据称对后端开发人员很友好. 在使用layui的过程中,我遇到了一些问题,在这里将几个个人感觉比较棘手的问题列举一下 ...
最新文章
- eclipse下编译hadoop源代码(转)
- android sliding tab,android – 刷新SlidingTabLayout
- 计算机本科重邮调剂重庆其他二本,重庆多少分能上二本大学,重庆二本大学最低分数线...
- bat产品经理能力模型_产品经理如何构建自己的产品能力模型?
- Zabbix Maintenance 维护周期
- leetcode261. 以图判树
- Entity Framework之IQueryable和list本地集合
- 逆向分析 工具、加壳、安全防护篇
- 耗时一年整理:Netty 终极权威指南 + 项目
- QT5/C++项目:基于QT的跨平台网络对战象棋(二)(推荐★★★★)
- RabbitMQ 使用的AMQP模型解析
- keil 中 warning: #1-D: last line of file ends without a newline的解决办法
- r语言dmy()函数转化出现na_R语言入门系列之二
- 计算机wps是什么意思啊,路由器WPS是什么意思?
- java I/O流
- 嵌入式应用开发在线图书网址
- 专题一:Labview表格控件 及 应用(一)
- 吹牛前请看这篇:“智能”物流 VS “智慧”物流
- 离线地图开发下实现GPS定位,坐标纠偏回放,偏离路线
- (3)复式记账-借贷法