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

郑州好的网站建设公司排名专业微信网站建设

郑州好的网站建设公司排名,专业微信网站建设,wordpress首页文章显示分类,职业技能培训网视频处理在OpenCV中处于极为重要的地位#xff0c;目标实时跟踪等各种实时图像处理算法都是以视频为基础。从相机捕获视频首先我们来了解一下使用电脑自带的相机来进行捕获视频。通常#xff0c;我们必须使用摄像机捕获实时流。OpenCV提供了一个非常简单的界面来执行此操作。…视频处理在OpenCV中处于极为重要的地位目标实时跟踪等各种实时图像处理算法都是以视频为基础。从相机捕获视频首先我们来了解一下使用电脑自带的相机来进行捕获视频。通常我们必须使用摄像机捕获实时流。OpenCV提供了一个非常简单的界面来执行此操作。让我们从相机捕获视频(我使用笔记本电脑上的内置网络摄像头)我们需要了解几个函数cap cv2.VideoCapture(0)VideoCapture()中参数是0表示打开笔记本的内置摄像头参数是视频文件路径则打开视频如cap cv2.VideoCapture(../test.avi)当然了如果你外接的有其他的摄像头那就可以选用其他的参数例如1从而调用它。ret,frame cap.read()cap.read()按帧读取视频ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值如果读取帧是正确的则返回True如果文件读取到结尾它的返回值就为False。frame就是每一帧的图像是个三维矩阵我们都知道视频是由一帧一帧的图像连续组成的OpenCV在对图像处理时就是对每一帧的图像进行快速处理。cv2.waitkey()waitKey()方法本身表示等待键盘输入参数是1表示延时1ms切换到下一帧图像对于视频而言参数为0如cv2.waitKey(0)只显示当前帧图像相当于视频暂停,参数过大如cv2.waitKey(1000)会因为延时过久而卡顿感觉到卡顿。c得到的是键盘输入的ASCII码esc键对应的ASCII码是27即当按esc键是if条件句成立。release()调用release()释放摄像头调用destroyAllWindows()关闭所有图像窗口。现在我们首先进行代码实验之后会进行一些说明import numpy as npimport cv2 as cvcap  cv.VideoCapture(0)if not cap.isOpened():print(Cannot open camera)exit()while True:# Capture frame-by-frameret, frame  cap.read()# if frame is read correctly ret is Trueif not ret:print(Cant receive frame (stream end?). Exiting ...)break# Our operations on the frame come here# gray  cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow(frame, gray)if cv.waitKey(1)  ord(q):break# When everything done, release the capturecap.release()cv.destroyAllWindows()isOpened可以确定摄像头是否被打开如果打开则继续如果未成功打开则自动退出。前面的时候我们已经讲过frame所指代的就是摄像头视频的每一帧图像所以在显示时我们也是显示每一帧。如果对每一帧图像都进行灰度化处理那么所显示的视频就是灰度化视频当然关于灰度化现在还没有讲到但是可以先做个小实验我们来看代码import numpy as npimport cv2 as cvcap  cv.VideoCapture(0)if not cap.isOpened():print(Cannot open camera)exit()while True:# Capture frame-by-frameret, frame  cap.read()# if frame is read correctly ret is Trueif not ret:print(Cant receive frame (stream end?). Exiting ...)break# Our operations on the frame come heregray  cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow(frame, gray)if cv.waitKey(1)  ord(q):break# When everything done, release the capturecap.release()cv.destroyAllWindows()大家自己实验体验一下效果。或许有的人已经发现了我们的视频跟实际中好像是相反的属于镜像效果我们可以取消这种效果在这里需要介绍一个函数后面在图像增强部分也会介绍到cv2.flip ()函数原型flip(src, flipCode[, dst])src代表输入的图像我么你来看一下flipCode的参数表现在我们加入这行代码import numpy as npimport cv2 as cvcap  cv.VideoCapture(0)if not cap.isOpened():print(Cannot open camera)exit()while True:# Capture frame-by-frameret, frame  cap.read()frame  cv.flip(frame, 1)# if frame is read correctly ret is Trueif not ret:print(Cant receive frame (stream end?). Exiting ...)break# Our operations on the frame come heregray  cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow(frame, gray)if cv.waitKey(1)  ord(q):break# When everything done, release the capturecap.release()cv.destroyAllWindows()再实验会发现图像已经没有那种镜像效果了。从文件播放视频从文件播放视频与从摄像机捕获视频相同只是将摄像机索引更改为视频文件名。另外在显示框架时请使用适当的时间cv.waitKey()。如果太少则视频将非常快而如果太高则视频将变得很慢(嗯这就是显示慢动作的方式)。正常情况下25毫秒就可以了。给出实例代码import cv2 as cvcap  cv.VideoCapture(test.avi)while cap.isOpened():ret, frame  cap.read()# if frame is read correctly ret is Trueif not ret:print(Cant receive frame (stream end?). Exiting ...)breakcv.imshow(frame, frame)if cv.waitKey(25)  ord(q):breakcap.release()cv.destroyAllWindows()保存视频当我们想要保存图像的时候这非常简单只需使用cv2.imwrite()。而当我们想要保存视频的时候需要做更多的工作。这次我们创建一个VideoWriter对象。我们应该指定输出文件名(例如output.avi)。然后我们应指定FourCC代码(下一段中的详细信息)。然后应传递每秒的帧数(fps)和帧大小。最后一个是isColor标志。如果为True则编码器需要彩色框否则将与灰度框一起使用。FourCC是一个4字节的代码用于指定视频编码器以及****。可用代码列表可在fourcc.org中找到它取决于平台。在Fedora中DIVXXVIDMJPGX264WMV1WMV2。(最好使用XVID。MJPG可以生成大尺寸的视频。X264提供非常小的尺寸的视频)在Windows中DIVX(尚待测试和添加)在OSX中MJPG(.mp4)DIVX(.avi)X264(.mkv)。FourCC代码作为MJPG的cv.VideoWriter_fourcc(MJPG)or cv.VideoWriter_fourcc(*MJPG)传递。以下代码从摄像机捕获在垂直方向上翻转每一帧然后保存视频import numpy as npimport cv2 as cvcap  cv.VideoCapture(0)# Define the codec and create VideoWriter objectfourcc  cv.VideoWriter_fourcc(*XVID)out  cv.VideoWriter(output.avi, fourcc, 20.0, (640,  480))while cap.isOpened():ret, frame  cap.read()if not ret:print(Cant receive frame (stream end?). Exiting ...)breakframe  cv.flip(frame, 1)# write the flipped frameout.write(frame)cv.imshow(frame, frame)if cv.waitKey(1)  ord(q):break# Release everything if job is finishedcap.release()out.release()cv.destroyAllWindows()大家可以自己尝试演示效果。视频处理的部分基本上就结束了以上介绍到的将是以后学习中非常重要的基础。而事实上OpenCV中对于视频的处理也有更多的操作现在介绍最后一个函数VideoCapture.get()由于前面我们已经指定cap cv.VideoCapture(0)所以调用此函数只需用cap.get()get中将传入参数给出参数表共有18个参数而至于相关的代码请大家自己实验可以使用print函数输出视频的详细信息。
http://www.zqtcl.cn/news/148766/

相关文章:

  • 网站清理通知北京电商购物网站
  • 新开传奇网站180合击创建一个个人网站需要多少钱
  • 郑州建网站哪家好深圳企业网站制作公司介绍
  • 企业网站百度收录桂林网站建设价格
  • 砀山做网站的公司wordpress微视频主题
  • 免费的企业网站cms注册网站后邮箱收到邮件
  • 网站推广排名教程怀化职院网站
  • 房产门户网站模板新手做电商怎么起步
  • 成都网站建设科技公沈阳网站建设技术公司排名
  • 自建商城网站上海有哪些网络公司
  • 朋友 合同 网站制作手机网站建设服务商
  • 链接分析属于网站开发棋牌软件开发定制
  • top域名的网站搭建网站步骤
  • 个人网站建设背景和目的海南省网站
  • 山西成宁做的网站义乌网站建设优化排名
  • 东莞网站建设公司辉煌大厦阿里云服务器官方网站
  • 域名注册网站制作自己建网站需要钱吗
  • 东莞市房管局官方网站域名查询ip网站
  • 织梦模板添加网站地图温州做网站掌熊号
  • 怎样凡科建设网站建立网站的步骤
  • 模板类网站建设中国都有哪些网站
  • 深圳百度推广网站建设深圳电器网站建设
  • 响应式网站有什么区别官方app
  • 手机网站建设哪里好网站架构设计师待遇怎么样
  • 静态网站设计wordpress网页视频播放器
  • 打电话做网站的话术网站安全维护方案
  • 变更备案网站可以访问吗google浏览器下载安装
  • 网站空间更换网站开发的服务器是什么
  • 网站 网页玉溪建设网站
  • 江西宜春市城市建设档案馆网站朋友圈广告30元1000次