CSI(Camera Serial Interface)接口摄像头是一种常见的嵌入式系统或移动设备中使用的摄像头接口。它通常用于与处理器或图像传感器进行直接连接,实现高速的图像数据传输。
CSI接口摄像头具有以下特点:
高速传输:CSI接口摄像头采用差分信号传输方式,能够提供高速的图像数据传输速率,适用于实时图像采集和处理。
低功耗:CSI接口摄像头在传输过程中能够提供较低的功耗,有利于节约设备电源并延长电池寿命。
易于集成:CSI接口摄像头可以通过标准化接口与支持CSI协议的处理器或芯片进行连接,便于系统集成和开发。
高质量图像:CSI接口摄像头能够提供高质量的图像捕获和传输能力,并支持不同的图像格式和分辨率。
首先要打开摄像头作为支持
sudo raspi-config
在配置界面中选择"Interfacing Options"(接口选项),然后选择"Camera"(摄像头),按照提示启用相机。
Advanced Options选择Expand Filesystem,将根目录扩展到这个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。退出设置界面,重启树莓派。
在命令行输入以下命令:这个命令的意思是用nano编辑器打开modules这个文件:
sudo nano /etc/modules
在这个文件末尾添加一行
bcm2835-v4l2
输入命令:
vcgencmd get_camera
使用以下命令拍摄一张图片并保存为image.jpg:
raspistill -o image.jpg
调用摄像头拍一张照片,命名为image.jpg,存储在/pi/home路径,也就是桌面左上角资源管理器一打开显示的那个路径。如果能看到摄像头上红灯亮,目录里面有照片,则进一步说明摄像头配置正确。
9.在树莓派安装运行在Python3上的OpenCV
检查pip和python版本
# 如果pip版本过低,可能无法安装,需要升级,在终端输入
pip install -U pip
安装opencv依赖的动态链接库
# 终端输入
sudo apt install libqt4-test
sudo apt install libqtgui4
安装opencv
# 终端输入
sudo pip install opencv-python
这步可能会出现如下错误:
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them. opencv-contrib-python-headless from https://www.piwheels.org/simple/opencv-contrib-python-headless/opencv_contrib_python_headless-3.4.3.18-cp35-cp35m-linux_armv6l.whl#sha256=ff894c0cc7c98b05b7b260a1dc462e7ad0a4220b042072fc0134a2b7a92bc4a5: Expected sha256 ff894c0cc7c98b05b7b260a1dc462e7ad0a4220b042072fc0134a2b7a92bc4a5 Got 4119d8c56d19ef044c1faca317dd10f2bb3b50cbee77426a22feca9b641c5637
原因分析:
error翻译过来是 hash值和包不匹配
大概是pip源地址是国外的,在国内下载速度特慢,网速问题导致的下载错误,从而导致对用的哈希值不匹配
我的解决方法:
pip换成国内的源,安装第三方包是用下面命令
sudo pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
测试
# 终端输入
python3
# 导入
import cv2 as cv
print(cv.__version__)
总结:这种方法在树莓派安装opencv比较快,出错少,特别是在python3上安装的时候。之前尝试过抄作业下载源码自行编译,花费2个小时以上仍是失败,操作步骤完全一样,就是不成功。