python 多帧 超分辨_利用python-opencv生成视频帧数控制,和常见错误总结
首先呢 利用opencv生成视频的例子相信网络上已经很多了。但是大多数例子都只是捕获一个摄像头就没了。但是在实际运用中会发现。因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长。
控制视频的帧数,捕获摄像头和生成图像都适用
关键在于在生成一帧的时候与下一帧的间隔时间。中间图像处理会造成延迟所以说会造成视频时间比预想的长
#计算处理时间
sleeptime = time.time() - now
#计算每一帧要延迟的时间
sleeptime = 1 / fps - sleeptime
import time
import datetime
import cv2
#生成一个视频
fps = 30.0 # 视频帧率
size = (289, 419)
baseimgpath = "/root/1.jpg"
save_path = "/root/"
flag = True
fourcc = cv2.VideoWriter_fourcc(*'X264')
file = save_path + datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S') + ".mp4"
videoWriter = cv2.VideoWriter(file, fourcc, fps, size)
while flag:
now = time.time()
baseimg = cv2.imread(baseimgpath)
#这里的数据通过缓存服务器获取
ret = mc.get('info')
rpm = str(ret["carstate"]["RPM"]) + "r/min"
speed = str(ret["carstate"]["SPEED"]) + "km/h"
COOLANT_TEMP = str(ret["carstate"]["COOLANT_TEMP"])
fuel = str(ret["carstate"]["FUEL"])
ENGINE_LOAD = str(round(ret["carstate"]["ENGINE_LOAD"], 1)) + "%"
v = str(12.2) + "V"
cv2.putText(baseimg, rpm, (130, 73), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 2, cv2.LINE_AA)
cv2.putText(baseimg, COOLANT_TEMP, (50, 150), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, fuel, (180, 150), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, ENGINE_LOAD, (50, 270), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, v, (180, 270), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
videoWriter.write(baseimg)
#计算处理时间
sleeptime = time.time() - now
#计算每一帧要延迟的时间
sleeptime = 1 / fps - sleeptime
#暂停时间
if sleeptime > 0:
time.sleep(sleeptime)
# time.sleep(1 / fps)
videoWriter.release()
cv2.destroyAllWindows()
利用队列多进程处理
对于多视频处理这个大佬讲的已经很详细了
常见问题
生成的视频特别小
这种一般是编码器没有选择对造成的,看看你电脑支不支持该编码,还有一种情况是摄像头问题比如。只支持30fps的摄像头要输出60fps的视频或者输出摄像头没有的分辨率
#可以这样获取
cap = cv2.VideoCapture(1)
fps = cap.get(cv2.CAP_PROP_FPS)
w = int(cap.get(3))
h = int(cap.get(4))
生成的视频过快或过慢
这个和处理能力有关。但凡造成延迟的操作就会造成这样的结果。所以说尽量控制帧数。用cpu占用少的编码器,降低视频分辨率等等。
python 多帧 超分辨_利用python-opencv生成视频帧数控制,和常见错误总结相关推荐
- python post请求 上传图片_利用python模拟实现POST请求提交图片的方法
本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...
- python实现邮件客户端_利用python实现简单的邮件发送客户端示例
脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...
- python制作图片墙_利用python生成照片墙的示例代码
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...
- python图片文字合成视频_利用Python将多张图片合成视频的实现
今天要做一个量子隧穿的的演示动画,在CSDN上看了很多大佬的文章,然而忙了接近半天才做好这件事.把踩过的坑记一下,同时这段代码也是值得记录的,因为以后也可能遇到类似的工作. 先上代码` import ...
- python处理nc数据_利用python如何处理nc数据详解
利用python如何处理nc数据详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用python如何处理nc数据详解.txt ] (友情提示:右键点上行txt ...
- python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)
抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...
- python计算面积代码_利用Python求阴影部分的面积实例代码
利用Python求阴影部分的面积实例代码 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: 利用Python求阴影部分的面积实例代码.txt ] (友情提示:右键点 ...
- python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...
- python itchat 无法登录_利用python实现在微信群刷屏的方法
hello,我是小小炽,这是我写的第一篇博客,写博客一直都想在写,但是苦于能力尚浅,在各位大牛面前那既然是关公面前耍大刀了,但是其实想来每一个大牛不也是从一个小白慢慢进步学习从而达到一定的高度的吗,而 ...
最新文章
- python多进程_python多进程
- RubyGems 镜像
- python【力扣LeetCode算法题库】1248- 统计「优美子数组」
- centos6.5下postgresql9.4.3安装与配置
- python3.5怎么打开一个文件,Python3.5入门学习记录-File
- vmware下ubuntu 鼠标不起作用解决方法
- 一键部署ETCD集群脚本
- 基于Android的图书管理系统
- 微信外卖点餐系统开发教程
- Unity web聊天通讯功能开发(1)
- C语言文件指针,如何对文件进行操作,文件指针FILE,指向文件指针
- 我们都是穷人甲乙丙丁
- H5设备运动事件 DeviceMotionEvent 实现摇一摇功能
- JS - 判断当前浏览器是不是PC浏览器
- ubutnu下panel消失
- OSChina 周五乱弹 —— 埃塞俄比亚的远房大表姐
- HTMLCSS仿京东注册页面制作静态页面总结
- 生成自己的浏览器证书
- 小米手机只能显示e或者无服务器,手机出现E网怎么回事
- 手把手教你快速入门 APP 的开发
热门文章
- SQL Sever2008 无法启动
- C盘pagefile.sys不可删除,解决磁盘占用太满的问题
- 【报告分享】2021全球职场调研中国报告:期待与忐忑,职场人的心声-普华永道.pdf(附下载链接)...
- 【推荐实践】Bandit算法在携程推荐系统中的应用与实践
- 【直播预告】腾讯广告实时策略数据框架建设
- 换了路由器电脑都连不上网了_换了新路由器电脑连不上网
- TensorBoard 1.15.0 at http://DESKTOP-DV74NQ2:6006/ 打开html后无法展示解决方案
- Leetcode每日一题:452.minimum-number-of-arrows-to-burst-balloons(最少数量的箭引爆气球)
- Leetcode每日一题:140.word-break-ii(单词拆分)
- ROS入门-1认识Linux系统,虚拟机安装Ubuntu