本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib。
OpenCV的源码主要有下面两部分:
- github.com/opencv/opencv (主仓库)
- github.com/opencv/opencv_contrib (包含了一些比较新的、不太稳定的、实验性的模块)
编译之前需从Github上下载最新的Release(当前最新的版本为4.5.1)
下面来看一下如何编译安装OpenCV。
安装之前,首先需要安装一些依赖
$ sudo apt install pkg-config cmake libgtk2.0-dev # 安装之前需要安装一些OpenCV的依赖
解压下载的源码zip文件,然后创建一个build文件夹
$ cd ./opencv
$ mkdir build && cd build
接下来使用cmake生成makefile
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D BUILD_opencv_xfeatures2d=OFF \ # 这个模块开启时会自动下载一些模型,有些模型在国外服务器,如果用不到里面的算法,这里不推荐打开。
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D ENABLE_NEON=ON \ # NEON指令是针对ARM平台的加速指令,在ARMv7及以上支持
-D WITH_TENGINE=ON \ # Tengine是专门针对ARM平台的DNN后端,能够加速DNN模块,此选项打开之后需要保持开发板联网
-D OPENCV_GENERATE_PKGCONFIG=ON \ # 此选项方便调用OpenCV库
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_PYTHON3_INSTALL_PATH=/usr/lib/python3/dist-packages \ # 这里需要修改成你的开发板上对应的位置
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib/modules \ # 这里需要修改成你的opencv_contrib所在目录
-D PYTHON_EXECUTABLE=/usr/bin/python3.7 \ # 这里需要修改成你Python所在的目录,将会自动安装python版本的OpenCV库
-D BUILD_EXAMPLES=ON ..
接着就可以进行编译安装了
$ make -j8 # 在我的树莓派4上耗时2小时
$ sudo make install
上面的步骤完成后,可以测试一下OpenCV是否安装成功。
Python:
>>> import cv2
>>> print(cv2.__version__) # 如果能够正确打印OpenCV版本,恭喜你,安装成功!
C++:
cd ./opencv/samples/cpp/example_cmake/build
./opencv_example # 当你从屏幕中看到一张帅气的脸,说明安装成功!(注:需要摄像头才能看到帅气的脸)!
或者,你也测试运行一下世界上最快的人脸检测算法libfacedetection给出的OpenCV DNN的例子,看看OpenCV是否安装成功:https://github.com/ShiqiYu/libfacedetection/tree/master/example/opencv_dnn/cpp
本文仅做学术分享,如有侵权,请联系删文。
▲长按关注公众号