如何实现在jupyter notebook中播放视频(不停地展示图片)


Posted in Python onApril 23, 2020

在解决图像处理问题的时候,可以利用opencv打开视频,并一帧一帧地show出来,但是要用到imshow(),需要本地的界面支持。

代码如下

# -*- coding:utf-8*-
import cv2
capture = cv2.VideoCapture("D:\\dataset\\chip_gesture.ts")
# 图像处理函数
def processImg(img):
 # 画出一个框
 cv2.rectangle(img, (500, 300), (800, 400), (0, 0, 255), 5, 1, 0)
 # 上下翻转
 # img= cv2.flip(img, 0)
 return img

# 一帧帧地show
while (capture.isOpened()):
 ret, frame = capture.read()
 if not ret:
 break

 result = processImg(frame)
cv2.imshow('result', result)

 # esc键退出
 if 0xFF & cv2.waitKey(30) == 27:
 break

cv2.destroyAllWindows()
capture.release()

但是当我们使用jupyter notebook来编写python程序的时候,cv2.imshow()就不行了。
最终的解决办法是使用ipython.display模块来解决。

from IPython.display import clear_output, Image, display, HTML
import time
import cv2
import base64

current_time = 0

# 图像处理函数
def processImg(img):
 # 画出一个框
 cv2.rectangle(img, (500, 300), (800, 400), (0, 0, 255), 5, 1, 0)
 # 上下翻转
 # img= cv2.flip(img, 0)

 # 显示FPS
 global current_time
 if current_time == 0:
  current_time = time.time()
 else:
  last_time = current_time
  current_time = time.time()
  fps = 1. / (current_time - last_time)
  text = "FPS: %d" % int(fps)
  cv2.putText(img, text , (0,100), cv2.FONT_HERSHEY_TRIPLEX, 3.65, (255, 0, 0), 2)

 return img

def arrayShow(imageArray):
 ret, png = cv2.imencode('.png', imageArray)
 encoded = base64.b64encode(png)
 return Image(data=encoded.decode('ascii'))


video = cv2.VideoCapture("/home/mvg/zmc/playgroud/远大前程27.mp4")

while(True):
 try:
  clear_output(wait=True)
  ret, frame = video.read()
  if not ret:
   break
  lines, columns, _ = frame.shape
  frame = processImg(frame)
  frame = cv2.resize(frame, (int(columns / 4), int(lines / 4)))

  img = arrayShow(frame)
  display(img)
  # 控制帧率
  time.sleep(0.02)
 except KeyboardInterrupt:
  video.release()

最终的运行效果如下:

如何实现在jupyter notebook中播放视频(不停地展示图片)

不过运行这段代码的时候,可能会提示iopub_data_rate_limit问题。如果使用配置文件(推荐)来运行jupyter notebook的话,修改配置文件

vim ~/.jupyter/jupyter_notebook_config.py

将c.NotebookApp.iopub_data_rate_limit = 10000000一行取消注释,改变后面的数据传输上限值,10M差不多能播放视频(有提示再修改上限)。

不使用配置文件的话,在运行时加上参数

jupyter notebook ?NotebookApp.iopub_data_rate_limit=10000000

以上这篇如何实现在jupyter notebook中播放视频(不停地展示图片)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python查询Mysql时返回字典结构的代码
Jun 18 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python使用sorted排序的方法小结
Jul 28 Python
对python中的for循环和range内置函数详解
Apr 17 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python中class的定义及使用教程
Sep 18 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
Python中常见的数制转换有哪些
May 27 Python
Python中的pprint模块
Nov 27 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 #Python
Anaconda和ipython环境适配的实现
Apr 22 #Python
Django框架获取form表单数据方式总结
Apr 22 #Python
Anaconda的安装及其环境变量的配置详解
Apr 22 #Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 #Python
Django实现图片上传功能步骤解析
Apr 22 #Python
Django框架配置mysql数据库实现过程
Apr 22 #Python
You might like
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
php表单提交问题的解决方法
2011/04/12 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
python检测远程服务器tcp端口的方法
2015/03/14 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
《池塘边的叫声》教学反思
2014/04/12 职场文书
通信工程专业求职信
2014/06/04 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
人大代表选举标语
2014/10/07 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
个人更名证明
2015/06/23 职场文书
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL