树莓派调用csi摄像头
时间: 2025-08-19 08:32:14 浏览: 4
### 树莓派 CSI 摄像头配置及调用方法
#### 配置树莓派 CSI 摄像头
为了启用树莓派上的 CSI 摄像头功能,需要通过 `raspi-config` 工具来激活硬件支持。具体操作如下:
执行以下命令进入配置界面:
```bash
sudo raspi-config
```
在弹出的菜单中选择 **Interfacing Options** -> **Camera** 并将其设置为 **Enable**[^2]。
完成上述步骤后,重启设备以应用更改:
```bash
sudo reboot
```
#### 安装必要的软件包
新版本的树莓派操作系统已切换到基于 `libcamera` 的摄像头框架替代旧版的 `mmal` 接口。因此,在使用 CSI 摄像头前需安装并更新相关依赖库。
运行以下命令以确保环境具备最新组件:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install libcamera-utils v4l-utils -y
```
#### 测试摄像头连接状态
确认摄像头模块已被系统识别,可以利用 `vcgencmd get_camera` 命令检测硬件是否存在以及被驱动加载成功的情况:
```bash
vcgencmd get_camera
```
如果返回结果显示 `supported=1 detected=1` 则表明 CSI 摄像头正常工作[^1]。
#### 使用 V4L2 调用摄像头
尽管官方推荐采用 `libcamera` API 进行开发,但部分场景下仍可能需要用到传统的 Video4Linux (V4L2) 接口访问摄像头数据流。此时可通过工具如 `v4l2-ctl` 或编程方式实现捕获图像等功能。
##### 查看设备节点信息
先查看当前可用视频输入源列表及其参数详情:
```bash
v4l2-ctl --list-devices
```
通常情况下,默认分配给内置CSI相机的是 `/dev/video0` 设备文件路径。
##### 抓取单帧图片示例
下面给出一段 Python 代码片段展示如何借助 OpenCV 库读取来自 CSI 摄像头的画面内容:
```python
import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
else:
ret, frame = cap.read()
if ret:
cv2.imwrite('csi_capture.jpg', frame)
print("Image saved successfully.")
cap.release()
cv2.destroyAllWindows()
```
此脚本会尝试打开索引号为零(即对应 /dev/video0)的摄像装置并将获取的第一张完整画面保存至本地磁盘作为 JPEG 文件存储。
---
阅读全文
相关推荐



















