感谢以下文章带给我的帮助!
子豪兄教你在树莓派上安装OpenCV - 知乎 (zhihu.com)
在 Linux 系统中编译安装 OpenCV - 知乎 (zhihu.com)
如何在Debian 10安装OpenCV | myfreax
How to Install OpenCV on Debian 10 Linux | Linuxize
由于想准备一下电赛,熟悉opencv再加上最近写pthon比较多,故本次的目标是:在树莓派上完成对python-OpenCV的支持
本次安装环境为树莓派4B官方64位操作系统(可是显示的是Debian呀呀呀)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| pi@raspberrypi:~ $ neofetch _,met$$$$$gg. pi@raspberrypi ,g$$$$$$$$$$$$$$$P. -------------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 11 (bullseye) aarch64 ,$$P' `$$$. Host: Raspberry Pi 4 Model B Rev 1.5 ',$$P ,ggs. `$$b: Kernel: 5.15.61-v8+ `d$$' ,$P"' . $$$ Uptime: 18 hours, 49 mins $$P d$' , $$P Packages: 1525 (dpkg) $$: $$. - ,d$$' Shell: bash 5.1.4 $$; Y$b._ _,d$P' Terminal: /dev/pts/5 Y$$. `.`"Y$$$$P"' CPU: BCM2835 (4) @ 1.800GHz `$$b "-.__ Memory: 881MiB / 7812MiB `Y$$ `Y$$. `$$b. `Y$$b. `"Y$b._ `"""
|
python版本3.9.2
另一种方法:直接安装库
这种方法异常简单,直接:
1 2
| sudo apt update sudo apt install python3-opencv
|
然鹅这种方法很快就被我抛弃了,因为这样安装的只是一个共享动态链接库,python函数的源码是没有的。这对于vscode的代码提示十分不友好。为了让我的vscode和记事本有一点区分度,我选择了编译
前置条件
树莓派分区扩展
这步的原因是SD卡空间不足
进入交互模式后,在Advance Options
里选择Expand FileSystem
,然后reboot
前置依赖安装
- python不必多说
- numpy opencv的图像数组基于numpy的ndarray
- build-essential 编译必备工具链
- cmake
- 等等
编译文件夹环境搭建
为了不用改路径,建议绝对路径设置成一样的
创建源代码文件夹,克隆git仓库到本地
1 2 3
| mkdir ~/opencv_build && cd ~/opencv_build git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git
|
进入opencv仓库,创建build文件夹(make命令在build文件夹下执行,防止make产生的文件污染仓库)
1 2
| cd ~/opencv_build/opencv mkdir build && cd build
|
make,这里有很多选项,我的最终版本如下
1 2
| pi@raspberrypi:~/opencv_build/opencv/build $ cmake -D CMAKE_VERBOSE_MAKEFILE=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules -D BUILD_EXAMPLES=ON -D BUILD_SHARED_LIBS=ON -D OPENCV_ENABLE_NONFREE=ON -D ENABLE_CXX11=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_python3=ON -D PYTHON3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.9.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..
|
生成,-j
参数是调用几个cpu核心,具体可以通过命令nproc
查看
安装
于是乎就完成了,出乎意料的有些顺利。。。