当前位置: 首页 > news >正文

进行网站开发 如何搭建环境wordpress上一篇下一篇箭头

进行网站开发 如何搭建环境,wordpress上一篇下一篇箭头,青岛网站制作seo,全网项目资源整合平台【1】引言 上一次课学习了用opencv读取图像,掌握了三个函数:cv.imread()、cv.imshow()、cv.imwrite() 相关链接如下: python学opencv|读取图像-CSDN博客 这次课我们继续,来学习用opencv读取视频。 【2】学习资源 首先是官网…

【1】引言

上一次课学习了用opencv读取图像,掌握了三个函数:cv.imread()cv.imshow()cv.imwrite()

相关链接如下:

python学opencv|读取图像-CSDN博客

这次课我们继续,来学习用opencv读取视频。

【2】学习资源

首先是官网资源,查看下述代码:

OpenCV: Getting Started with Videos

然后是对应的中文版博客资源,查看下述链接:

2. GUI 功能 - 视频入门 - 《OpenCV 中文文档 4.0.0》 - 书栈网 · BookStack

这两个内容基本上是一模一样,所以按照自己的喜好选用即可。

这次课程的学习目的是掌握视频的读取和保存,涉及两个函数:

cv.VideoCapture()cv.VideoWriter()

【3】函数解读

【3.1】cv.VideoCapture()函数

点击下述链接,直达官网解读页面:

https://docs.opencv.org/4.0.0/d8/dfe/classcv_1_1VideoCapture.html

这里的核心意思也很简单:Class for video capturing from video files, image sequences or cameras.

简而言之就是:从视频文件、系列图片或者照相机中读取视频。

【3.2】cv.VideoWrite()函数

点击下述链接,直达官网解读页面:

OpenCV: cv::VideoWriter Class Reference

核心意思:Video writer class.

简而言之就是:保存视频。

【4】 代码解读 

在上述解读的基础上,我们尝试理解代码。

书栈网2. GUI 功能 - 视频入门 - 《OpenCV 中文文档 4.0.0》 - 书栈网 · BookStack提供了非常简洁的代码,我们对其解读:

    import numpy as npimport cv2 as cvcap = cv.VideoCapture(0)while(True):# 一帧一帧捕捉ret, frame = cap.read()# 我们对帧的操作在这里gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# 显示返回的每帧cv.imshow('frame',gray)if cv.waitKey(1) & 0xFF == ord('q'):break# 当所有事完成,释放 VideoCapture 对象cap.release()cv.destroyAllWindows()

首先是引入计算和opencv模块:

import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块

然后直接调用cv.VideoCapture()函数读取视频:

cap = cv.VideoCapture(0) #读取视频

之后给了一个自定义函数,这个函数逐帧读取视频,然后把视频变成灰色输出,里面使用了imshow()函数支持输出:

while (True): #自定义函数# 一帧一帧捕捉ret, frame = cap.read()# 我们对帧的操作在这里gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) #将每一帧都换成灰色# 显示返回的每帧cv.imshow('frame', gray) #输出灰色的视频if cv.waitKey(1) & 0xFF == ord('q'):break

然后任务完成释放所有对象:

# 当所有事完成,释放 VideoCapture 对象
cap.release() #读取完成后,释放,也就是任务完成后休息
cv.destroyAllWindows() #关闭窗口

实际上运行上述代码没有任何输出,甚至还会保存,因为至少没有视频支持读取。

所以为了完成对代码的理解,还有必要稍加改写。

上次课已经知晓,要被读取的对象最好和python程序放在一起,所以我做了一个视频,和程序放在了同一个位置,视频链接为:

dnlp-aixmls

 然后把代码修改为:

import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块cap = cv.VideoCapture('dnlp-aixmls.mp4') #读取视频
while (True): #自定义函数# 一帧一帧捕捉ret, frame = cap.read()# 我们对帧的操作在这里gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) #将每一帧都换成灰色# 显示返回的每帧cv.imshow('frame', gray) #输出灰色的视频if cv.waitKey(1) & 0xFF == ord('q'):break
# 当所有事完成,释放 VideoCapture 对象
cap.release() #读取完成后,释放,也就是任务完成后休息
cv.destroyAllWindows() #关闭窗口

视频按照灰色的模样进行了输出,效果为:

使用python+opencv转化灰度视频

【5】 灰度视频保存

根前述内容,已知使据用cv.VideoWrite()函数可以保存视频

先引入一个翻转视频后再将其保存的示例,示例依然来自:2. GUI 功能 - 视频入门 - 《OpenCV 中文文档 4.0.0》 - 书栈网 · BookStack

import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块cap = cv.VideoCapture(0) #读取视频
# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc(*'XVID') #指定视频解码器,XVID只是其中一种方法
out = cv.VideoWriter('output.avi', fourcc, 20.0, (640, 480)) #输出视频
while (cap.isOpened()): #自定义函数ret, frame = cap.read()if ret == True:frame = cv.flip(frame, 0) #对图像进行翻转,调用了flip()函数# 写入已经翻转好的帧out.write(frame) #保存视频cv.imshow('frame', frame) #输出视频if cv.waitKey(1) & 0xFF == ord('q'):breakelse:break
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

 上面先给出了加了注释的官网示例代码,然后我们很直观的会发现保存视频主要增加了两行汇总要代码:

fourcc = cv.VideoWriter_fourcc(*'XVID') #指定视频解码器,XVID只是其中一种方法
out = cv.VideoWriter('output.avi', fourcc, 20.0, (640, 480)) #输出视频

fourcc用于视频解码,out用于视频保存。

逻辑上也非常简单,先知道了视频的格式,也就是掌握了该如何处理的方法,然后按照期待的方向将其格式和名称进行转化就可以。

不过官网代码还不能直接使用,所以我们稍微修改一下,转化为下述形式:

import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块cap = cv.VideoCapture('dnlp-aixmls.mp4') #读取视频
# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc(*'XVID') #指定视频解码器,XVID只是其中一种方法
out = cv.VideoWriter('output-100.mp4', fourcc, 20.0, (1920, 1040)) #输出视频
while (cap.isOpened()): #自定义函数ret, frame = cap.read()if ret == True:frame = cv.flip(frame, 0) #对图像进行翻转,调用了flip()函数# 写入已经翻转好的帧out.write(frame) #保存视频cv.imshow('frame', frame) #输出视频if cv.waitKey(1) & 0xFF == ord('q'):breakelse:break
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

实际上我们看到这是一个彩色的翻转视频,链接如下。

使用python+opencv翻转视频

结合一下对前面的灰度视频转化的操作,我们尝试保存一下灰度视频。

首先输入下述代码:

import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块cap = cv.VideoCapture('dnlp-aixmls.mp4') #读取视频
# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc(*'XVID') #指定视频解码器,XVID只是其中一种方法
out = cv.VideoWriter('output-flip-gray.mp4', fourcc, 20.0, (1920, 1040),False) #输出视频
while (cap.isOpened()): #自定义函数ret, frame = cap.read()if ret == True:frame = cv.flip(frame, 0) #对图像进行翻转,调用了flip()函数gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# 写入已经翻转好的帧out.write(gray) #保存视频cv.imshow('gray', gray) #输出视频if cv.waitKey(1) & 0xFF == ord('q'):breakelse:break
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

这里和之前纯翻转代码的区别是:

acv.VideoWrite()函数后增加了False,正是False参数的出现实现了灰度视频保存;

【b】out.write()和cv.imshow()的参数是gray,它们和False参数一起,保证了保存灰度视频。

【c】修改out.write()和cv.imshow()的参数gray为frame,代码不可以运行。

在v.VideoWrite()函数的官网OpenCV: cv::VideoWriter Class Reference,可以看到解释:

6b730f4245a44b33a344bc7c533b86c2.png

图1

时间也会发现这是一个小细节,只有在cv.VideoWrite()函数后增加了False参数,灰度视频才会被成功保存。

7b69cc5d9d1a4eb985bb4eff84dd8627.png

图2

保存后的翻转灰度视频为:

python+opencv做灰度视频并将其翻转

【6】 总结

初步学习了使用cv.VideoCapture()函数和cv.VideoWrite()函数处理视频的基本技巧。

http://www.yayakq.cn/news/201953/

相关文章:

  • 出名的网站建设软件python爬数据做网站
  • 网站做收款要什么条件数据库能上传网站模板
  • 做网站程序广西网站建设原创
  • 公司做网站需要哪些内容济南网站建设招标
  • 什么是商务网站郑州快速建站价格
  • 班级网站的建设调查表建设兼职网站目的
  • 山西做二级建筑资料在哪个网站微信人生里面微网站怎么做
  • 做彩票网站违法的吗宁波市建筑业管理信息网
  • 搭建wordpress网站2021ppt模板免费下载 素材
  • 清理网站数据库a+网络推广平台
  • 网站建设网络门户wordpress 4.8.1
  • 网站表格怎么做小程序开发的服务怎么样
  • 什么是网站制作app网站按域名跳转不同的页面
  • 做物理的网站手机网站的视频怎么才能下载
  • 国家基础设施建设网站网站运营需要哪些知识
  • 我想看黄牌台州网站建设优化
  • 为何网站不被百度收录网站会员等级审核功能怎么做
  • wordpress多站点不显示免费无网络游戏大全
  • 建网站英语怎么说百度推广官网电话
  • 做网站花多钱网络推广竞价是什么
  • wordpress开启子站点个人做网站 用什么语言
  • 数码网站建设维护贵州 网站建设
  • 网站宽度一般是多少辽宁人工智能建站系统软件
  • 中文网站的seo怎么做申请网站空间就是申请域名
  • 如何建设小说网站省建设厅网站合同备案用户名
  • 学做吃的网站有哪些ui界面图片
  • 吴江高端网站建设做电焊加工的网站
  • 北京网站建设找降龙江阴公司企业网站建设
  • 哪种网站开发最简单百度网站制作联系方式
  • 如何寻找建设网站的公司wordpress修改固定链接404