获取视频帧数和总帧数

这篇具有很好参考价值的文章主要介绍了获取视频帧数和总帧数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

获取视频帧数和总帧数代码

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-应用文章来源地址https://www.toymoban.com/news/detail-544936.html

import os
import cv2
import time

videoPath=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()

到了这里,关于获取视频帧数和总帧数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

    方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内的像素值取平均,然后将这个平均值赋值给当前像素。这

    2024年02月14日
    浏览(43)
  • opencv 30 -图像平滑处理01-均值滤波 cv2.blur()

    图像平滑处理(Image Smoothing)是一种图像处理技术,旨在减少图像中的噪声、去除细节并平滑图像的过渡部分。这种处理常用于预处理图像,以便在后续图像处理任务中获得更好的结果。 常用的图像平滑处理方法包括: 均值滤波(Mean Filtering) :用图像中像素周围区域的平

    2024年02月01日
    浏览(52)
  • opencv(15) 图像平滑处理之二:cv2.GaussianBlur()高斯滤波

    高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 高斯模板是通过对二维高斯函数进行采样(高斯模糊的卷积核里的数值满足高斯分布)、量化并归一化得到的,它考虑了邻域像素位置的影响,距离当前被平滑像素越近的点,加权系数越大

    2024年02月10日
    浏览(52)
  • opencv-34 图像平滑处理-2D 卷积 cv2.filter2D()

    2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区域进行元素级别的乘法和累加

    2024年02月14日
    浏览(38)
  • python 图像处理——关于plt.imshow显示cv2.imread读取的图像有“色差”、“发蓝”问题的解决方法

    使用cv2.imread()读取图像时,默认彩色图像的三通道顺序为B、G、R,这与我们所熟知的RGB中的R通道和B通道正好互换位置了。 而使用plt.imshow()函数却默认显示图像的通道顺序为R、G、B,导致图像出现色差发蓝。 彩色图像出现色差代码: 运行结果如图1-1所示,其颜色偏蓝,怪吓

    2024年02月01日
    浏览(44)
  • Jetson Orin Nano使用OpenCV获取视频帧率和帧数的方法

    首先确认下视频的播放时间 使用cv库来获取帧率和帧数,测试代码如下 python3运行结果,30fps,总帧数807 计算验证,fps含义,多少帧frame每秒,视频的时间就等于总帧数/fps,807/30=26.9s,符合我们最开始看到的视频时间 Jetson Orin Nano使用OpenCV获取视频帧率和帧数的方法

    2024年01月21日
    浏览(72)
  • cv2读取视频-并保存图像或视频

    @TOC cv2读取视频的一般流程 获取视频 cap = cv2.VideoCapture() 判断获取的视频是否成功,成功读取视频对象则返回True。 cap.isOpened() 按帧读取 ret, frame = cap.read() 展示图像 cv2.waitKey(1) 读取本地文件视频并展示

    2024年02月11日
    浏览(46)
  • 【OpenCV常用函数:视频捕获函数】cv2.VideoCapture

    输入视频路径,创建VideoCapture的对象 该类的函数有: 1)video.isOpened: 检查视频捕获是否成功 2)video.read(): 读取视频帧,返回ret, frame,ret为bool类型,表示是否成功 3)video.release(): 关闭视频 4)video.get(prop): 获取video的属性 如果要读取视频的每一帧,然后进行相关的处理时,可

    2024年02月13日
    浏览(64)
  • cv2.VideoCapture 及 ffmpeg 打开视频流

    安装ffmpeg: windows电脑FFmpeg安装教程手把手详解   安装ffmpeg 运行ffmpeg:

    2024年02月12日
    浏览(42)
  • cv2.VideoWriter生成视频无法播放的原因(持续补充)

    filename:视频保存路径 fourcc:指定编码器 fps:视频帧率 frameSize:图像大小 isColor:黑白画面还是彩色画面 img_names是要用来生成视频的图像路径列表。 如果 图像路径存在中文 ,使用 cv2.imdecode(np.fromfile(img_names[0],dtype=np.uint8),-1) 来读入图片,而不能是使用 cv2.imread 如果人为指定

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包