我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python OpenCV视频文件操作方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python OpenCV视频文件操作方法是什么

今天小编给大家分享一下Python OpenCV视频文件操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    一、从文件中读取视频并播放

    1.创建读取视频的对象

    cap=cv.VideoCapture(filepath)

    2.获取视频某些属性

    retval=cap.get(propId)

    propId:从0到18的数字,每个数字表示视频的属性

    索引flags意义
    0cv2.CAP_ PROP_POS_MSEC视频文件当前位置
    1cv2.CAP_PROP_POS_FRAMES从0开始索引帧,帧位置
    2cv2.CAP_PROP_POS_AVI_RATIO视频文件的相对位置(0表示开始,1表示结束)
    3cv2.CAP_PROP_FRAME_WIDTH视频流的帧宽度
    4cv2.CAP_PROP_FRAME_HEIGHT视频流的帧高度
    5cv2.CAP_PROP_FPS帧率
    6cv2.CAP_PROP_FOURCC编解码器四字符代码
    7cv2.CAP_PROP_FRAME_COUNT视频文件的帧

    3.修改视频属性信息

    cap.set(propId,value)

    4.判断图像是否读取成功

    isornot=cap.isOpened()

    5.获取视频的一帧图像

    ret,frame=cap.read()

    ret:获取成功返回True,失败返回False

    frame:获取到的图像

    注意:调用cv.imshow()显示图像时,要使用cv.waitkey()设置适当持续时间,通常设置25ms

    6.释放图像

    cap.release()

    示例:

    import numpy as npimport cv2 as cvcap=cv.VideoCapture("video.mp4")#判断是否获取成功while(cap.isOpened()):    #获取每一帧图像    ret,frame=cap.read()    #是否获取成功    if ret == True:        cv.imshow("frame",frame)    if cv.waitKey(25)&0xFF==ord("q"):        break;cap.release()cv.destoryAllWindows()

     二、视频文件的保存

    1.在OpenCV中保存视频使用的是VedioWriter对象,创建视频写入对象

    out=cv.VideoWriter(filename,fourcc,fps,framesize)

    fourcc:用四个字符表示的视频编码格式

    fps:帧速率

    framesize:每一帧的大小

    2.设置视频的编解码器

    retval=cv2.VideoWriter_fourcc(c1,c2,c3,c4)

    c1~c4:视频编解码器的4字节代码,常用的有:

    Windows:DIVX(.avi)

    OS中:MJPG(.mp4),DIVX(.avi),X264(.mkv)

    3.利用cap.read()获取视频中的每一帧图像,使用out.write()将某一帧图像写入视频中

    4.使用cap.release()和out.release()释放资源

    示例

    import numpy as npimport cv2 as cv#读取视频cap=cv.VideoCapture("video.mp4")width=int(cap.get(3))height=int(cap.get(4))out=cv.VideoWriter("out.avi",cv.VideoWriter_fourcc("M","J","P","G"),10,(width,height))while(True):    ret,frame=cap.read()    if ret==True:        out.write(frame)    else:        breakcap.release()out.release()cv.destroyAllWindows()

     三、视频文件目标追踪

    1.meanshift算法:

    1>原理:通常情况,使用直方图反向投影方法将窗口移动到反向投影图像中灰度密度最大的区域

    假设我们有张100x100的输入图像,有一张10x10的模板图像, 查找的过程:
    1.从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像

    生成临时图像的直方图
    3.用临时图像的直方图和模板图像的直方图对比,对比结果记为c
    4.直方图对比结果c,就是结果图像(0,0)处的像素值
    5.切割输入图像从(0,1)至(10,11)的临时图像,对比直方图,并记录到结果图像

    重复1~5步直到输入图像的右下角,就形成了直方图的反向投影

    2>API

    cv.meanshift(probImage,window,criteria)

    probImage:ROI区域,即直方图的反向投影

    window:初始搜索窗口,即定义ROI的rect

    criteria:确定窗口搜索停止的准则,主要有迭代次数达到设置的最大值,窗口中心漂移值大于某个设定的限值

    3>主要流程

    读取视频文件: cv.VideoCapture0
    2.感兴趣区域设置:获取第一帧图像,并设置目标区域,即感兴趣区域
    3.计算直方图:计算感兴趣区域的HSV直方图,并进行归一化
    4.目标追踪:设置窗口搜索停止条件,直方图反向投影,进行目标追踪,并在目标位置绘制矩形框。

    示例

    import numpy as npimport cv2 as cv# 1.获取图像cap=cv.VideoCapture('video.mp4')#指定追踪目标ret,frame=cap.read()#行、高、列、宽r,h,c,w=347, 301, 700, 308win=(c,r,w,h)#追踪窗口为列行宽高#追踪目标roi = frame[r:r + h, c:c + w]#计算直方图(HSV)hsv_roi=cv.cvtColor(roi, cv.COLOR_BGR2HSV)roi_hist=cv.calcHist([hsv_roi], [0], None, [180], [0, 180])cv.normalize(roi_hist,roi_hist,0,255,cv.NORM_MINMAX)# 4. 目标追踪,设置窗口搜索终止条件:最大迭代次数,窗口中心漂移最小值term=(cv.TERM_CRITERIA_EPS|cv.TERM_CRITERIA_COUNT, 10, 1)while (True):    ret, frame=cap.read()    if ret == True:        #计算直方图的反向投影        hsv=cv.cvtColor(frame, cv.COLOR_BGR2HSV)        dst=cv.calcBackProject([hsv],[0],roi_hist,[0, 180],1)        #进行meanshift追踪        ret,win = cv.meanShift(dst,win,term)        #追踪的位置绘制在视频上        x,y,w,h=win        img2 = cv.rectangle(frame, (x,y), (x+w, y+h), 255, 2)        cv.imshow('frame',img2)        if cv.waitKey(60) & 0xFF == ord('q'):            break    else:        breakcap.release()cv.destroyAllWindows()

    以上就是“Python OpenCV视频文件操作方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python OpenCV视频文件操作方法是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python OpenCV视频文件操作方法是什么

    今天小编给大家分享一下Python OpenCV视频文件操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、从文
    2023-07-04

    Python OpenCV视频文件相关操作教程

    最近看了一些opencv的相关内容,这里做一下记录以及学习中的体会,和大家分享一下,下面这篇文章主要给大家介绍了关于Python OpenCV视频文件相关操作的相关资料,需要的朋友可以参考下
    2022-11-13

    Python文件操作的方法是什么

    这篇文章主要介绍“Python文件操作的方法是什么”,在日常操作中,相信很多人在Python文件操作的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python文件操作的方法是什么”的疑惑有所帮助!
    2023-06-21

    Python从视频中提取音频的操作方法

    这篇文章给大家分享的是有关Python从视频中提取音频的操作方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简介OpenCV中使用VideoCapture类写的视频是没有音频的,如果要进一步处理音频则需要用到一
    2023-06-14

    文件IO操作的方法是什么

    本篇内容介绍了“文件IO操作的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01/背景/已经过去的中间件性能挑战赛,和正在进行中的
    2023-06-04

    Golang操作TSV文件的方法是什么

    这篇“Golang操作TSV文件的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang操作TSV文件的方法是
    2023-07-05

    Python快速将ppt制作成配音视频课件的操作方法

    目录一、引言二、ppt视频课件制作过程 2.1、将ppt保存为一张张图像2.2、按页录音2.3、编写代码进行合成三、效果四、小结一、引言 老猿从来没有录播个视频课件,但最近有要求在一周内必须录制一个视频课件,为此花了3天时间准备ppt,花了
    2022-06-02

    电脑打印文件操作方法是什么

    今天小编给大家分享一下电脑打印文件操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。电脑打印文件步骤操作方法:1、
    2023-07-01

    Java操作文件与磁盘的方法是什么

    这篇文章主要介绍“Java操作文件与磁盘的方法是什么”,在日常操作中,相信很多人在Java操作文件与磁盘的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java操作文件与磁盘的方法是什么”的疑惑有所
    2023-06-03

    Qt QFile文件操作的使用方法是什么

    本篇内容主要讲解“Qt QFile文件操作的使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Qt QFile文件操作的使用方法是什么”吧!很多应用程序都需要具备操作文件的能力,包括对
    2023-06-21

    python操作MongoDB的方法是什么

    这篇文章主要介绍“python操作MongoDB的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python操作MongoDB的方法是什么”文章能帮助大家解决问题。MongoDB 是一个基
    2023-06-28

    python操作yaml的方法是什么

    今天就跟大家聊聊有关python操作yaml的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、参考链接https://pyyaml.org/wiki/PyYAMLDocu
    2023-06-22

    Python操作Excel的方法是什么

    本文小编为大家详细介绍“Python操作Excel的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python操作Excel的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。xlwt 是 Py
    2023-06-27

    Python使用UDP实现720p视频传输的操作方法

    小编给大家分享一下Python使用UDP实现720p视频传输的操作方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python的优点有哪些1、简单易用,与C/C
    2023-06-14

    html插入视频的方法是什么

    HTML插入视频的方法有两种:1. 使用HTML5的标签在HTML5中,可以使用标签来插入视频。示例代码如下:``````其中,src属性指定视频文件的URL,controls属性添加播放器控制条。2. 使用嵌入式代码除了标签,还可以使用嵌
    2023-06-12

    Python自定义视频播放器的方法是什么

    要自定义视频播放器,你可以使用Python的多媒体库来实现。以下是一些常用的库和方法:1. pygame:它是一个用于游戏开发的库,也可以用于创建自定义视频播放器。你可以使用pygame.mixer模块来处理音频,同时使用pygame.mo
    2023-08-08

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录