淄博建设工程学校官方网站,做外贸的人如何上国外网站,子夜免费观看,长沙房产Python使用CV2库捕获、播放和保存摄像头视频 特别提示#xff1a;CV2指的是OpenCV2#xff08;Open Source Computer Vision Library#xff09;#xff0c;安装的时候是 opencv_python#xff0c;但在导入的时候采用 import cv2。
若想使用cv2库必须先安装#xff0c;P…Python使用CV2库捕获、播放和保存摄像头视频 特别提示CV2指的是OpenCV2Open Source Computer Vision Library安装的时候是 opencv_python但在导入的时候采用 import cv2。
若想使用cv2库必须先安装Python第三方cv2库安装和使用介绍可参见 https://blog.csdn.net/cnds123/article/details/126547307
需要你的计算机有摄像头笔记本一般内置有摄像头若是台式机可以连接一个USB摄像头。 捕获视频帧
使用 OpenCV 可以捕获摄像头输出的视频流并且可以对每一帧视频进行处理。下面是一个简单的示例代码演示如何从摄像头中捕获视频帧并显示到屏幕上
import cv2#定义cv2.VideoCapture 类型的对象
cap cv2.VideoCapture(0)#isOpened() 用来判断是否捕获到视频
if not cap.isOpened():print(无法打摄像机)exit()while True:# 如果正确读取帧ret为Truecap.read() 方法从摄像头中读取一帧视频ret, frame cap.read()if not ret:break # 显示帧视频cv2.imshow(frame, frame)# 按 q 键退出程序if cv2.waitKey(1) ord(q):break# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()说明VideoCapture 对象传入了参数 0表示设备索引设备索引就是指定哪个摄像头的数字。正常情况下一个摄像头会被连接(就像我的情况一样)。所以我简单地传0。你可以通过传递1来选择第二个相机以此类推。
运行效果如下 捕获视频帧保存
把视频保存到本地可以使用cv2.VideoWriter()方法需要设置输出视频的文件名、编解码器、帧速率和帧大小等参数。VideoWriter() 有5个参数
参数1输出文件名例如: d:/output.mp4。
参数2FourCC 代码FourCC 是用于指定视频编解码器的4字节代码。
参数3帧率的数量。
参数4帧大小。
参数5颜色标志。如果为 True正常颜色输出否则就是灰色图像输出。 VideoWriter_fourcc()编码方法常见的视频格式参数
cv2.VideoWriter_fourcc(M, P, 4, V)
MPEG-4编码 .mp4 可指定结果视频的大小
cv2.VideoWriter_fourcc(X,2,6,4)
MPEG-4编码 .mp4 可指定结果视频的大小
cv2.VideoWriter_fourcc(I, 4, 2, 0)
该参数是YUV编码类型文件名后缀为.avi 广泛兼容但会产生大文件
cv2.VideoWriter_fourcc(P, I, M, I)
该参数是MPEG-1编码类型文件名后缀为.avi
cv2.VideoWriter_fourcc(X, V, I, D)
该参数是MPEG-4编码类型文件名后缀为.avi可指定结果视频的大小
cv2.VideoWriter_fourcc(T, H, E, O)
该参数是Ogg Vorbis,文件名后缀为.ogv
cv2.VideoWriter_fourcc(F, L, V, 1)
该参数是Flash视频文件名后缀为.flv 下面是一个简单的例子
import cv2# 打开摄像头
cap cv2.VideoCapture(0)if not cap.isOpened():print(无法打摄像机)exit()# 设置输出视频的参数
fourcc cv2.VideoWriter_fourcc(*MP4V) # 其中*MP4V和 M, P, 4, V等效
out cv2.VideoWriter(d:/output.mp4, fourcc, 20.0, (640, 480))while True:# 读取视频帧ret, frame cap.read()if not ret:break# 显示视频帧——播放视频cv2.imshow(frame,frame)# 将视频帧写入输出视频out.write(frame)# 按 q 键退出循环if cv2.waitKey(1) ord(q):break# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()运行后将在你指定的路径产生找到生成的文件我这里是d:/output.mp4。