树莓派5_opencv笔记27:Opencv录制视频(无声音)

 今日继续学习树莓派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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值