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

网站建设平面要多少分辨率怎么搭建一个视频网站

网站建设平面要多少分辨率,怎么搭建一个视频网站,店标logo图片免费制作,网站可以做系统吗OpenCV提供了VideoCapture类和VideoWriter类来支持各种格式的视频流#xff0c;支持的格式类型会因系统的不同而有所变化#xff0c;但基本上都是支持avi格式的#xff0c;且对于视频文件和摄像头画面的读写所用到的接口基本上都相同#xff0c;因此#xff0c;我们把它们…OpenCV提供了VideoCapture类和VideoWriter类来支持各种格式的视频流支持的格式类型会因系统的不同而有所变化但基本上都是支持avi格式的且对于视频文件和摄像头画面的读写所用到的接口基本上都相同因此我们把它们放在一起来讲了。 1. 获取VideoCapture类实例 不管是读取视频文件还是捕获摄像头画面都使用到了VideoCapture类但不同的是传入的形参不一样如果我们传给VideoCapture类的是一个视频文件路径那么将是读取来自视频文件的画面而如果我们传给VideoCapture类的是摄像头编号那么将是读取来自摄像头的画面其使用示例如下 # 获取VideoCapture类实例读取视频文件 fcap cv2.VideoCapture(demo.mp4) # 读取摄像头画面 ccap cv2.VideoCapture(0) 对于摄像头编号可以使用如下命令获取 ls -al /dev/ | grep video 对于输出信息以video开头的其数字后缀即为可能的摄像头编号如果一台电脑有多个摄像头设备那么将会出现从0开始的多个摄像头编号。 2. 判断获取VideoCapture实例是否成功 如果传入无效的视频文件或摄像头编号那么VideoCapture类将会在后续的read()接口返回FalseNone为了避免此类事件发生可以通过VideoCapture类的isOpened()接口进行判断该接口返回一个boolean值正常获取实例返回True否则返回False其使用示例如下 # 判断是否正确获取VideoCapture类实例 while fcap.isOpened():# next step operation 3. 获取视频流信息 一般视频流主要的帧信息包含画面宽高还有帧率对于视频文件则会多出整个视频流多少帧因此我们一般主要关注这四个视频流信息即可而我们用到的则是VideoCapture类的get接口其使用示例如下 # 获取视频帧的宽 w fcap.get(cv2.CAP_PROP_FRAME_WIDTH) # 获取视频帧的高 h fcap.get(cv2.CAP_PROP_FRAME_HEIGHT) # 获取视频帧的帧率 fps fcap.get(cv2.CAP_PROP_FPS) 获取到的帧率对于摄像头设备来说如果所使用的终端不支持查询那么将会返回0值且该值也不是非常精确的。 # 获取视频流的总帧数 fcount fcap.get(cv2.CAP_PROP_FRAME_COUNT) 注意这个是对视频文件才有意义对于摄像头是没意义的且以上获取到的返回信息均是浮点型的注意转换为整型。 4. 获取帧画面 这个就相对简单直接使用VideoCapture类的read接口即可该接口会返回两个参数第一个参数是读取成功与否标志位成功为True否则为False第二个参数则为具体的帧数据其是一个numpy.ndarray的数组其使用示例如下 # 获取帧画面 success, frame fcap.read() 但在读取过程中有可能会存在失败的情况出现一般我们是在第二次读取时放入一个while循环来保障整个读取顺利进行如下 # 判断读取视频流是否成功 while success:success, frame fcap.read()# do something in here 5. 针对一组或多头摄像头特殊处理 当需要同步一组摄像头或一个多头multihead摄像头例如立体摄像头或Kinect时read()方法就不太适用了这时一般使用grab()和retrieve()方法代替它。对于一组摄像头其使用示例如下 # 一组摄像头的特殊处理 success0 fcap0.grab() success1 fcap1.grab() if success0 and success1:frame0 fcap0.retrieve()frame1 fcap1.retrieve() 6. 跳到视频流某一帧 对于视频文件有时候我们需要直接跳到某一个感兴趣的帧并从该帧开始读取数据那么可以使用VideoCapture类的set接口其使用示例如下 # 跳到某一感兴趣帧并从此帧开始读取,如从第360帧开始读取 fcap.set(cv2.CAP_PROP_POS_FRAMES, 360) success, frame fcap.read() 7. 设置摄像头分辨率 opencv读取到的摄像头画面大小一般为默认的640x480但这并不一定满足我们的日常使用要求比如摄像头支持超高清画面那么我们就希望能捕获到超高清1920x1080的画面好在VideoCapture类的set接口为我们提供了相应的功能其使用示例如下 # 设置摄像头分辨率的高 fcap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) # 设置摄像头分辨率的宽 fcap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) 8. 获取VideoWriter类实例 不管是对视频文件的再存储还是对摄像头画面的保存都是用到了VideoWriter类且传入的形参意义是一致的都需要我们传入保存的文件名包含视频格式、指定视频编解码器、保存视频的帧率以及保存视频的分辨率一般来说保存视频的帧率最好与读入的画面的帧率一致但需要我们进行估计或使用计时器才会比较准确而分辨率则可以更改只是要求写入的帧其大小要与分辨率保持一致其使用示例如下 writer cv2.VideoWriter(output.avi, cv2.VideoWriter_fourcc(X, V, I, D), 30, (1080, 1920)) 值得注意的是我们必须要为VideoWriter类的构造函数传入所需的参数且若指定的文件名已存在则会被直接覆盖。 9. VideoWriter类支持的视频编解码器 在构造VideoWriter类实例时我们必须要指定视频编解码器那么VideoWriter类都支持哪些视频编解码器呢我们通过cv2.VideoWriter_fourcc来指定具体使用的编解码器 I,4,2,0该选项是一个未压缩的YUV颜色编码兼容性好但产生文件较大文件扩展名为.avi P,T,M,I该选项是MPEG-1编码类型文件扩展名为.avi X,V,T,D该选项是MPEG-4编码类型得到的视频大小处于平均值文件扩展名为.avi T,H,E,O该选项是Ogg Vorbis文件扩展名为.ogv F,L,V,1该选项是一个flash视频文件扩展名为.flv 一般常用的是cv2.VideoWriter_fourcc(X,V,T,D)mp4编码文件相对小一些或cv2.VideoWriter_fourcc(I,4,2,0)文件相对大一些但为了缩小文件空间我们可能还需要用到ffmpeg工具进一步压缩文件。 10. 保存帧数据 这个也很简单直接使用VideoWriter类的write接口即可该接口一次可以保存一帧数据到制定文件中其使用示例如下 # 保存帧数据 writer.write(frame) 11. 释放资源 不管是VideoCapture类还是VideoWriter类当我们使用完了它们之后都应该将它们释放掉避免资源一直被占用而这两个类都有提供了release()接口给我们我们只需直接调用即可释放资源使用示例如下 # 释放VideoCapture资源 fcap.release() # 释放VideoWriter资源 writer.release() 12. 一个完整的示例代码 # -*- coding: utf-8 -*- # /usr/bin/env/python3use opencv3 to capture video frame, show and save its stream.import cv2def stream_processing():# 获取VideoCapture类实例读取视频文件fcap cv2.VideoCapture(demo.mp4)# 设置摄像头分辨率的高fcap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)# 设置摄像头分辨率的宽fcap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)# 跳到某一感兴趣帧并从此帧开始读取,如从第360帧开始读取fcap.set(cv2.CAP_PROP_POS_FRAMES, 360)# 获取视频帧的宽w fcap.get(cv2.CAP_PROP_FRAME_WIDTH)# 获取视频帧的高h fcap.get(cv2.CAP_PROP_FRAME_HEIGHT)# 获取视频帧的帧率fps fcap.get(cv2.CAP_PROP_FPS)# 获取视频流的总帧数fcount fcap.get(cv2.CAP_PROP_FRAME_COUNT)# 获取VideoWriter类实例writer cv2.VideoWriter(output.avi, cv2.VideoWriter_fourcc(X, V, I, D), int(fps), (int(w), int(h)))# 判断是否正确获取VideoCapture类实例while fcap.isOpened():# 获取帧画面success, frame fcap.read()while success:cv2.imshow(demo, frame) ## 显示画面# 获取帧画面success,frame fcap.read()# 保存帧数据writer.write(frame)if (cv2.waitKey(20) 0xff) ord(q): ## 等待20ms并判断是按“q”退出相当于帧率是50hz注意waitKey只能传入整数break# 释放VideoCapture资源fcap.release()# 释放VideoWriter资源writer.release()cv2.destroyAllWindows() ## 销毁所有opencv显示窗口if __name__ __main__:stream_processing() 好了以上就是opencv对视频文件和摄像头画面的读写操作了比较系统全面掌握了这些内容以后处理视频数据就会如鱼得水了
http://www.pierceye.com/news/944289/

相关文章:

  • 榆林市住房和城市建设局网站网络系统管理比赛
  • 学校网站建设论文哪里网站备案最快
  • 上海公交建设公司官网seo排名优化工具
  • 网站设计与网站制作什么是网络营销中最容易出问题的步骤
  • 网站做自适应好不好网站开发结构图
  • wordpress sky主题东莞整站优化排名
  • 黑龙江 建设监理协会网站开发公司资质查询
  • 中标建设集团有限公司 网站怀化主要网站
  • 国外网站seo国外企业网站建设
  • 很简单的做设计的网站网站建设会议讲话
  • 泉港区建设局网站廉政配置wordpress环境
  • 公众号开发培训网站谷歌优化怎么做
  • 网站设计合理汕头市潮南区紧急提醒
  • 国外网站流量查询企业网站报价单
  • 聊城高唐网站建设公司wordpress设置域名
  • 有帮忙做儿童房设计的网站吗东莞横沥网站制作
  • 国外网站模板欣赏WordPress 编辑器修改默认字号
  • 厦门同安网站建设视频购物网站开发方案
  • 什么是建设网站的主题兼职做问卷调查的网站
  • 装饰网站建设软件下载公司旅游视频网站模板免费下载
  • aws网站建设个体户做网站去哪里做
  • 用四字成语做网站域名好吗宁波网站推广专业服务
  • 深圳网站建设公司是网络推广网上营销
  • 网站视频站建设教程和仿qq商城版淘宝客网站源码模板+带程序后台文章dede织梦企业程序
  • 温州红酒网站建设长沙移动网站建设
  • 如何制作网站?企业网站制作步骤
  • 桓台县旅游网站建设购物网站建设技术难点
  • 单页网站推广网站qq链接怎么做
  • wordpress仿站步骤平乡网站建设
  • 青岛高端网站建设公司新网站seo技术