今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)
本人所用树莓派5 装载的系统与版本如下:
版本可用命令 (lsb_release -a) 查询:
Opencv 与 python 版本如下:
今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录...
文章提供测试代码讲解,整体代码贴出、测试效果图
目录
阶段一:录制一段视频
阶段二:录视频保存在指定文件目录
阶段一:录制一段视频
我们一个一个阶段来编写代码,这个阶段代码实现的是打开摄像头开始录制,直到键盘按下Q退出,保存方才的录制为视频文件.avi 在代码同一个目录下
import cv2
# 定义保存视频的参数
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 定义编码器
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480)) # 创建VideoWriter对象
# 打开摄像头
cap = cv2.VideoCapture(0) # 0通常是你的默认摄像头
if not cap.isOpened():
print("Error: Cannot open camera")
exit()
while True:
# 逐帧捕获
ret, frame = cap.read()
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# 显示结果帧
cv2.imshow('frame', frame)
# 写入帧到文件
out.write(frame)
# 按'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放捕获
cap.release()
out.release()
cv2.destroyAllWindows()
阶段二:录视频保存在指定文件目录
此时可以看到录制结束的视频保存在对应文件夹目录了:
import cv2
import os
# 定义保存视频的目录和文件名
save_dir = '/home/pi/Code_examples/Videos' # 替换为你的目录路径
filename = 'my_custom_video.avi' # 这里你可以自定义文件名
# 确保目录存在,如果不存在则创建它
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 完整的文件路径
full_path = os.path.join(save_dir, filename)
# 定义保存视频的参数
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 定义编码器
fps = 20.0 # 帧率
frame_size = (640, 480) # 分辨率
# 创建VideoWriter对象
out = cv2.VideoWriter(full_path, fourcc, fps, frame_size)
# 打开摄像头
cap = cv2.VideoCapture(0) # 0通常是你的默认摄像头
if not cap.isOpened():
print("Error: Cannot open camera")
exit()
# 捕获并保存视频帧
while True:
ret, frame = cap.read()
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# 显示帧(可选)
cv2.imshow('frame', frame)
# 写入帧到文件
out.write(frame)
# 按'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()