与图形处理过程类似,毕竟视频是有一个个图形构成的,多的部分只是对视频的一些简单操作

源代码:

import cv2
from darkflow.net.build import TFNet
import numpy as np
import timeoption = {'model': 'cfg/yolo.cfg','load': 'bin/yolo.weights','threshold': 0.3,'gpu': 0.7
}tfnet = TFNet(option)capture = cv2.VideoCapture('test.mp4')  # 读取视频
colors = [tuple(255 * np.random.rand(3)) for i in range(10)]  # 随机创建10中颜色,RGB形式
# 当视频打开时,进行处理
while capture.isOpened():stime = time.time()  # 计算起始时间ret, frame = capture.read()  # 读取每一帧,第一个参数是bool型的ret,其值为True或False,代表有没有读到图片,第二个参数是当前帧图像if ret:results = tfnet.return_predict(frame)  # 送入网络进行预测# 将 colors results 进行打包for color, result in zip(colors, results):tl = (result['topleft']['x'], result['topleft']['y'])br = (result['bottomright']['x'], result['bottomright']['y'])label = result['label']frame = cv2.rectangle(frame, tl, br, color, 3)frame = cv2.putText(frame, label, tl, cv2.FONT_HERSHEY_COMPLEX, 1, color, 1)cv2.imshow('frame', frame)  # 显示当前帧print('FPS {:.1f}'.format(1 / (time.time() - stime)))  # 计算帧率# 按 q 键退出if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:capture.release()cv2.destroyAllWindows()break

运行结果:

处理帧率(电脑GPU为 1050Ti)

FPS 16.0
FPS 12.8
FPS 12.8
FPS 10.7
FPS 12.8
FPS 11.4
FPS 12.8
FPS 16.1
FPS 16.1
FPS 16.1
FPS 16.1
FPS 12.8
FPS 16.1
FPS 12.8
FPS 12.8
FPS 16.1
FPS 16.1
FPS 12.9
FPS 13.9
FPS 12.8
FPS 16.1
FPS 12.8
FPS 12.8
FPS 12.9
......

对上述程序,进行简单修改,即可变为摄像头实时显示

将  capture = cv2.VideoCapture('test.mp4') # 读取视频 删掉改为

capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

即可,0指的是第一个摄像头,若有多个,则可以用1,2...

1920,1080为分辨率

YOLO基础教程(三):视频处理相关推荐

  1. Ogre3D基础教程三

    文档:教程:基础教程:基础教程三 出自Ogre3D开放资源地带 跳转到: 导航, 搜索 目录 [隐藏] 1 先决条件 2 简介 3 从这里开始 4 根对象和场景管理器的创建 4.1 根对象 4.2 场 ...

  2. MySql基础教程(三)——查询训练

    在MySql两轮基础的学习之后,来一波实战演习... 三张表:学生表,课程表,成绩表. 建表详细信息见 MySql基础教程(一) 转载于:https://www.cnblogs.com/zhouerb ...

  3. 三大开源生信基础教程和视频课程

    开源生信 R 教程 http://www.ehbio.com/Bioinfo_R_course/ 1 思考题 2 R基础 2.1 R安装 2.2 Rstudio基础 2.2.1 Rstudio版本 2 ...

  4. 基础教程三(天空,地面和雾化处理)

    简介 在这篇教程里,我们将会一起探索OGRE中的天空,地面和雾化处理.通过这篇教程,您应该明白天空盒(Skybox),天空穹(Skydome)和天空面(Skyplane)的用法和区别.您还会了解不同种 ...

  5. 麒麟子Javascript游戏编程零基础教程三:无处不在的Javascript

    如果你是从大纲那一篇开始看过来的,你在点开这个文章的连接之前,肯定期望说,麒麟子又会在讲正式内容之前BB点什么,这样的话,看起教程来轻松不累还实惠.没错,你猜对了,这就是我的风格. 为什么会把编程教学 ...

  6. eureka hostname作用_SpringCloud基础教程(三)-Eureka进阶

       我的博客:http://www.hao127.com.cn/,欢迎浏览博客!    上一章 http://hao127.com.cn/#/view/65当中,我们介绍了微服务组件当中的服务注册和 ...

  7. yml eureka defaultzone 只生效第一个_SpringCloud基础教程(三)-Eureka进阶

       我的博客:http://www.hao127.com.cn/,欢迎浏览博客!    上一章 http://hao127.com.cn/#/view/65当中,我们介绍了微服务组件当中的服务注册和 ...

  8. python基础教程免费视频-零基础小白python从入门到精通视频(全60集)

    零基础小白python从入门到精通视频(全60集)课程目录: [真心软件]01Python编程语言历史及特性.mp4 [真心软件]02Python编程语言初接触.mp4 [真心软件]03Python程 ...

  9. JavaScript基础教程(三)

    一.JS变量 1.变量是用来储存信息的"容器".例:var x=10; var y=10.1; var z="hello"; 1 2 3 4 5 6 7 8 9 ...

  10. Android基础教程(三)之------ Activity 窗口切换

    首先在layout里建2个xml文件 分别有按钮1和按钮2 JAVA代码: 1.public class Activity01 extends Activity {  public void onCr ...

最新文章

  1. Docker容器中挂载NFS共享目录
  2. Oracle错误 1053: 该服务没有响应启动或控制请求
  3. Ubuntu12.04 VMware Tools的安装
  4. 函数调用规范__cdecl和__stdcall的区别
  5. MongoDB基本操作(增删改查)
  6. SQL Server遍历表(临时表)
  7. 微信公众账号开发入门准备
  8. 如何按行政区划下载谷歌卫星地图并裁剪
  9. Drillbeach---第一章 Drillbench 5.1发行说明
  10. 财务需要哪些计算机能力,建设财务共享中心,财务人员应具备哪些能力?
  11. 从电信的广告学习情景与文案的搭配
  12. 【java】714. 买卖股票的最佳时机含手续费-----动态规划!!!
  13. 图像处理 Matlab GUI系统(全)
  14. Linux中解除带锁的文件夹
  15. OJ---腐烂的橘子
  16. 2023年如何实习QQ强制拉人入群,QQ批量拉群,QQ强制拉群软件开发定制的思路解析
  17. JNI的替代者—使用JNA访问Java外部功能接口 DLL
  18. 【面向对象应用~.~】——项目开发团队分配管理软件
  19. 【mud】文字mud游戏的魅力(龟跑比赛)
  20. 2021-08-07 Gabor滤波器简介以及简单应用

热门文章

  1. Excel 多个条件同时重复时,自动标红
  2. 北京市地震灾后规划信息化分析
  3. HTML+CSS入门学习
  4. 浏览器主页被篡改解决方法
  5. 昆明二级计算机考试报名时间2015,2015年国家司法考试昆明考区公告
  6. 5个最优秀的Java和C#代码转换工具
  7. 【机器学习】十二、一文看懂支持向量机原理
  8. windows桌面图标全部不见了怎么办
  9. 众人帮怎么发布悬赏任务?发布任务所需要求条件是什么?
  10. Camtasia 2019卸载-无痕强力卸载