OpenCV I_05视频基础
来源:互联网 发布:妖师鲲鹏传txt下载知轩 编辑:程序博客网 时间:2024/05/21 19:35
目标
• 学会读取视频文件,显示视频,保存视频文件
• 学会从摄像头获取并显示视频
• 你将会学习到这些函数:cv2.VideoCapture(),cv2.VideoWrite()
5.1 用摄像头捕获视频
我们经常需要使用摄像头捕获实时图像。OpenCV 为这中应用提供了一个非常简单的接口。让我们使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来。从这个简单的任务开始吧。
为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。
首先,导入opencv库 cv2,numpy数组,还有时间停顿的time
import cv2import numpy as np import time
捕获视频
为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。
cap=cv2.VideoCapture(0)while(True):ret,frame=cap.read()# frame为视频的帧 可以对每一帧进行处理cv2.imshow('Video',frame)if cv2.waitKey(1) == ord('q'):breakcap.release()cv2.destroyAllWindows()
录像写入视频
注意,视频格式 *‘XVID’可以为:
I420对应为未压缩的YUK文件.avi.
PIM1对应MPEG-1文件.avi
XVID对应MPEG-4文件.avi
THEO对应.ogv
FLVI对应flash视频.flv
# 读取摄像头到cap对象cap = cv2.VideoCapture(0)# 格式fourcc = cv2.VideoWriter_fourcc(*'XVID') # .flv *'FLV1'# 视频框架out = cv2.VideoWriter('output.avi',fourcc, 20, (640,480)) #视频 格式 fps sizewhile(cap.isOpened()):ret, frame = cap.read()# cap 对象读取出帧frameif ret==True:# frame帧写入到视频对象outout.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:breakcap.release()out.release()cv2.destroyAllWindows()
读取写入视频
# 读取写入视频cap = cv2.VideoCapture('PIC/001.mp4')fps = cap.get(cv2.CAP_PROP_FPS)size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))fourcc = cv2.VideoWriter_fourcc(*'PIM1')OutVideo = cv2.VideoWriter('PIC/002.avi',fourcc,fps,size)ret,frame = cap.read()while ret:OutVideo.write(frame)ret,frame = cap.read()
总结:
'''函数:cv2.VideoCapture(),cv2.VideoWrite()'''import cv2import numpy as np import time# 捕获视频cap=cv2.VideoCapture(0)while(True):ret,frame=cap.read()# frame为视频的帧 可以对每一帧进行处理cv2.imshow('Video',frame)if cv2.waitKey(1) == ord('q'):breakcap.release()cv2.destroyAllWindows()# 录像写入视频# 读取摄像头到cap对象cap = cv2.VideoCapture(0)# 格式fourcc = cv2.VideoWriter_fourcc(*'XVID') # .flv *'FLV1'# 视频框架out = cv2.VideoWriter('output.avi',fourcc, 20, (640,480)) #视频 格式 fps sizewhile(cap.isOpened()):ret, frame = cap.read()# cap 对象读取出帧frameif ret==True:# frame帧写入到视频对象outout.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:breakcap.release()out.release()cv2.destroyAllWindows()# 读取写入视频cap = cv2.VideoCapture('PIC/001.mp4')fps = cap.get(cv2.CAP_PROP_FPS)size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))fourcc = cv2.VideoWriter_fourcc(*'PIM1')OutVideo = cv2.VideoWriter('PIC/002.avi',fourcc,fps,size)ret,frame = cap.read()while ret:OutVideo.write(frame)ret,frame = cap.read()
0 0
- OpenCV I_05视频基础
- Opencv--视频操作基础
- opencv视频基础操作
- OpenCV视频操作基础
- OpenCV视频序列操作基础
- python-opencv 视频处理基础
- OpenCV基础篇——视频显示
- [OpenCV基础] 视频序列获取网站
- opencv视频操作基础---VideoCapture类
- opencv 视频
- OPENCV图像处理基础(三)播放一个视频
- OpenCV----OpenCV基础数据结构
- opencv 基础
- OPENCV基础
- OpenCV基础
- OpenCV基础
- opencv基础
- opencv基础
- 21:三角形最佳路径问题
- 弱联系的强度:人脉、信息和创新
- iOS录屏/自定义相机
- springmvc访问静态资源
- TestNG-使用Listener获取失败截图
- OpenCV I_05视频基础
- 10024---Linux 脚本攻略(一)
- 几种保存Hive查询结果的方法
- Java工具包
- 重定向和转发分派的区别
- 【GDSOI2017模拟4.13】炮塔(最小割)
- Linux vi简介
- 9.文件
- 10.一些补充