本站点使用cookies,继续浏览表示您同意我们使用cookies。Cookies和隐私政策
OpenCV(Open Source Computer Vision Library)是跨平台计算机视觉和机器学习软件库,基于 BSD 许可授权发行,可以在商业和研究领域中免费使用。
OpenCV 用 C++ 和 C 语言编写,具有 C ++、Python、Java、C#、Ruby、GO 和 MATLAB 等接口,并支持 Windows、Linux、Android 和 Mac OS 等操作系统。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。
2020年7月18日,OpenCV官网发布了OpenCV的最新版OpenCV4.4.0。以下为新版主要更新内容:
SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)算法移至主存储库,支持免费使用(SIFT 的专利已过期)。
改进的图层/激活/支持更多模型:
新示例demo:
英特尔推理引擎后端 :
大量针对CUDA的支持和优化
此外,OpenCV 3.4.11 也已发布,并带有一些 bug 修复和改进。详细内容可查看更新说明: https://github.com/opencv/opencv/wiki/ChangeLog
另外,本次版本更新还释放一个重大信号,OpenCV 计划在下一版本中将授权协议由BSD 2 迁移到 Apache 2,这将消除将 OpenCV 用于商业产品时可能面临的专利风险,对开发者更友好!
下面将介绍在 openEuler 上编译 OpenCV 4.4.0 的流程,并记录了其中遇到的一些坑及避坑指南。
首先创建文件夹
cd /usr/local/src
mkdir opencv
cd opencv
从 OpenCV 社区获取 OpenCV-4.4.0 的源码包
wget https://github.com/opencv/opencv/archive/4.4.0.tar.gz
解压,进入并创建 build 文件夹
tar -zxvf 3.0.0.tar.gz
cd opencv-3.0.0/
mkdir build
cd build/
使用 cmake 编译
cmake ..
make -j8
make install
查看安装 OpenCV 所生成的库文件和头文件。
ll /usr/local/lib
total 36M -rw------- 1 root root 563K Jul 22 00:31 libade.a lrwxrwxrwx 1 root root 24 Jul 22 01:57 libopencv_calib3d.so -> libopencv_calib3d.so.4.4 lrwxrwxrwx 1 root root 26 Jul 22 01:57 libopencv_calib3d.so.4.4 -> libopencv_calib3d.so.4.4.0 -rwx------ 1 root root 1.9M Jul 22 01:57 libopencv_calib3d.so.4.4.0 lrwxrwxrwx 1 root root 21 Jul 22 00:40 libopencv_core.so -> libopencv_core.so.4.4 lrwxrwxrwx 1 root root 23 Jul 22 00:40 libopencv_core.so.4.4 -> libopencv_core.so.4.4.0 -rwx------ 1 root root 5.2M Jul 22 00:40 libopencv_core.so.4.4.0 lrwxrwxrwx 1 root root 20 Jul 22 01:44 libopencv_dnn.so -> libopencv_dnn.so.4.4 lrwxrwxrwx 1 root root 22 Jul 22 01:44 libopencv_dnn.so.4.4 -> libopencv_dnn.so.4.4.0 -rwx------ 1 root root 5.4M Jul 22 01:44 libopencv_dnn.so.4.4.0 lrwxrwxrwx 1 root root 27 Jul 22 01:50 libopencv_features2d.so -> libopencv_features2d.so.4.4 lrwxrwxrwx 1 root root 29 Jul 22 01:50 libopencv_features2d.so.4.4 -> libopencv_features2d.so.4.4.0
在编译期间,本人遇到了一些问题,记录如下:
开始编译时提示缺少 cmake;或者编译失败,查看 cmake 版本过低,比如 cmake-3.5.1 不行,cmake-3.14 之后可以。此时需要重装较新版本的 cmake,过程如下。
获取 cmake-3.17.2 源码包
cd /usr/local/src
wget https://cmake.org/files/v3.17/cmake-3.17.2.tar.gz
若从 cmake 官网下载速度较慢,可以在 gitee 码云提供的 src-openEuler 项目中找到适应openEuler 的 cmake 压缩包: https://gitee.com/src-openeuler/cmake 下载地址 https://gitee.com/src-openeuler/cmake/blob/master/cmake-3.17.2.tar.gz
解压并进入安装目录
cd /usr/local/src
tar -zxvf cmake-3.17.2.tar.gz
cd cmake-3.17.2
安装 cmake
./configure
make
make install
测试 cmake 是否安装完成
cmake -version
返回内容如下所示,表示安装已经完成。
cmake version 3.17.2 CMake suite maintained and supported by Kitware (kitware.com/cmake).
cmake 编译时,提示缺少 OpenSSL
CMake Error: Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY)
进入指定目录下载安装
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1f.tar.gz
若从 OpenSSL 官网下载速度较慢,可以在 gitee码云提供的 src-openEuler 项目中找到适应openEuler 的 OpenSSL 压缩包: https://gitee.com/src-openeuler/openssl 下载地址 https://gitee.com/src-openeuler/openssl/blob/master/openssl-1.1.1f.tar.gz
解压并进入安装目录
tar -xvf openssl-1.1.1f.tar.gz
cd openssl-1.1.1f
安装 OpenSSL
./config
make
make install
测试 OpenSSL 是否安装完成
openssl -version
OpenSSL 1.1.1f
参考资料: