树莓派安装OpenCV 4 完整实战教程:从零开始搭建计算机视觉环境
早期的计算机主要依赖键盘和鼠标进行交互,但如今它们已经进化到能够智能读取图像与视频中的信息。这种能力——让计算机从图像中提取、分析并理解信息——正是计算机视觉的核心。近年来,计算机视觉技术突飞猛进,不仅能识别出人和物体,还能分析其属性,甚至判断情绪。这一切背后,是深度学习与人工智能的驱动,尤其是通过大量相似图片训练出的算法模型。如今,这项技术已足够成熟可靠,应用领域从安防监控到酒店服务,乃至金融支付,处处可见其身影。
提到计算机视觉,最常用的工具库就是OpenCV。这是一款由英特尔开源、完全免费的跨平台库,支持Windows、Mac、Linux系统。今天我们要探讨的是,如何在树莓派3上成功安装OpenCV 4,让这台便携小设备也能运行计算机视觉应用,极大地拓展了创意空间。那么,我们直接进入正题。
在树莓派上安装OpenCV,说实话是一个相当耗费精力的过程,主要原因是耗时极长且容易踩坑。基于此前走过的弯路,我们整理了一份尽可能简洁、信息量充足的教程,希望能帮大家避开常见的陷阱。撰写本文时,OpenCV已发布4.0.1版,但编译该版本时遇到了一些小问题,因此决定采用稳定的4.0.0版。
安装前的准备工作
开始之前,请确保你的树莓派已安装最新版系统,并且能够通过SSH远程连接。如果尚未完成,请先搞定这一步。
树莓派安装OpenCV 的两种方式
Python自带的包管理器pip用起来很方便,理论上也可以用pip几分钟就装好OpenCV。但坦率地说,这种方法在我这里以及很多其他用户处都失败了。而且通过pip安装,你无法完全控制OpenCV的编译选项。不过,如果你追求速度,也可以先试试看。
首先,确保树莓派上的pip已升级到最新版。然后在终端中依次输入以下命令:
sudo apt-get install libhdf5-dev libhdf5-serial-dev
sudo apt-get install libqtwebkit4 libqt4-test
sudo pip install opencv-contrib-python
如果这一步顺利执行,OpenCV就安装成功了,恭喜你!可以直接跳到第13步,用Python验证是否安装正确。如果不是这样,请深呼吸,按照下面的手动编译步骤操作。
使用CMake在树莓派上手动编译OpenCV 4
这里提供一种更彻底的方式:下载OpenCV源码包,然后通过CMake在树莓派上自行编译。有些人喜欢将OpenCV安装在虚拟环境中,以便在同一台设备上使用不同版本的Python或OpenCV。但为了控制教程篇幅,且考虑短期可能用不上,我们就不采用虚拟环境了。
第一步:先将系统更新到最新版本。直接输入:
sudo apt-get update && sudo apt-get upgrade
这条命令会下载并安装所有可用的新软件包,大约需要15~20分钟,请耐心等待。

第二步:更新apt-get的包列表,以便顺利下载CMake等工具。
sudo apt-get update

第三步:更新完包列表后,用下面命令下载并安装CMake及相关依赖。
sudo apt-get install build-essential cmake unzip pkg-config
安装过程中屏幕显示大致如下。

第四步:接着安装Python 3的开发头文件。
sudo apt-get install python3-dev
如果已经装好,屏幕会显示类似的信息。

第五步:从GitHub下载OpenCV压缩包。执行以下命令:
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip
可以看到,我们下载的是4.0.0版。

第六步:OpenCV还提供了Python专用预构建包,名为OpenCV contrib,有助于简化开发。同样用类似命令下载。
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

现在你的主目录下应该有两个zip文件:“opencv-4.0.0.zip”和“opencv-contrib-4.0.0.zip”。如果不放心可以检查一下。
第七步:解压opencv-4.0.0的zip包。
unzip opencv.zip

第八步:同样解压opencv_contrib-4.0.0的zip包。
unzip opencv_contrib.zip

第九步:OpenCV依赖numpy库才能运行,顺便安装一下。
pip install numpy

第十步:现在主目录里多了两个目录:“opencv-4.0.0”和“opencv_contrib-4.0.0”。要编译OpenCV,需先在opencv-4.0.0目录中创建一个名为“build”的文件夹。按顺序输入以下命令。
cd ~/opencv
mkdir build
cd build

第十一步:接下来运行CMake,这是配置OpenCV编译选项的关键步骤。确保你在 ~/opencv-4.0.0/build 路径下,然后将下面这段命令复制到终端中。
cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.0.0/modules
-D ENABLE_NEON=ON
-D ENABLE_VFPV3=ON
-D BUILD_TESTS=OFF
-D WITH_TBB=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_EXAMPLES=OFF .

如果一切正常,屏幕最后应显示“配置完成”和“生成完成”等提示。

如果此步出错,多半是路径问题,请检查主目录下是否存在那两个目录,路径是否正确。
第十二步:这是最耗时的环节。仍在 ~/opencv-4.0.0/build 路径下,用以下命令开始编译。
make -j4

这会启动OpenCV的构建过程,屏幕将显示进度百分比。整个过程大概需要3~4小时。如果顺利完成,你会看到如上画面。
这里有个细节:make -j4 利用四个内核加速编译。但在99%的情况下,有人会发现进程卡住很久,等了一个小时没有反应。后来我只好中止它,改用 make -j1(单核)重新编译,结果就成功了。当然单核编译会更慢,因此建议先尝试 -j4,如果确实不行再换 -j1,毕竟 -j4 已经完成了大部分编译工作。
第十三步:走到这一步,基本上大功告成。最后一步是使用以下命令安装libopencv。
sudo apt-get install libopencv-dev python-opencv

第十四步:最后,运行一个简单的Python脚本来确认库是否安装成功。在终端输入 python 进入交互模式,然后输入 import cv2,如果没有报错,即表示一切就绪。

看到这个画面,你就可以放心地开始任何OpenCV项目了。
