行业知识
【OpenCV】在MacOS上源码编译OpenCV
在MacOS上源码编译OpenCV
- 1. 下载项目源码
- 2. 创建CMake编译文件
- 3. 编译安装
- 4. 案例测试
- 5. ���结 前言
在做视觉任务时,我们经常会用到开源视觉库OpenCV,OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。
最近在项目中,我遇到了在MacOS上使用OpenCV需求,目前OpenCV官网上并没有提供OpenCV现成的安装包,因此在此处我们需要自己进行编译,所以在此处我们将结合opencv_4.8.0、opencv_contril_4.8.0,演示如何源码编译并使用
1. 下载项目源码
首先下载项目源码,这里我们下载的是4.8.0,大家可以根据自己的需求进行下载,不过要尽量保证opencv、opencv_contril源码版本一致。通过下面代码我们进行源码下载:
wget https://github.com/opencv/opencv/archive/4.8.0.zipwget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip
下载完代码后,将代码文件解压到当前文件中,如下图所示:
2. 创建CMake编译文件
OpenCV支持CMake编译,所以此处需要安装CMake,安装方式此处不做讲解。输入一下指令,打开并创建编译文件夹:
cd opencv-4.8.0mkdir build && cd build
接下来输入CMake指令,进行CMake编译,此处需要注意三个路径:
- CMAKE_INSTALL_PREFIX=:表示编译好的OpenCV安装路径,可以指定到系统路径,也可以是自定义路径,此处设置为:/Users/ygj/3lib/opencv_4.8.0/include/opencv4/opencv2,注意这个路径,后续编译C++项目时会用到。
- OPENCV_EXTRA_MODULES_PATH=:表示扩展模块的路径,就是上文我们下载的opencv_contril_4.8.0文件,在此处设置为/Users/ygj/3lib/opencv_build/opencv_contrib-4.8.0/modules。
- PYTHON3_EXECUTABLE=:表示本计算机Python的安装路径,此处也可以不设置,主要就是设置要不要生成Python依赖库。如果设置了,需要开启BUILD_opencv_python2=ON或者BUILD_opencv_python3=ON,具体按照你的电脑中安装的Python版本决定。
设定好上面三个路径后,就可以在终端输入以下指令,进行CMake编译:
cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 -DWITH_OPENJPEG=OFF -DWITH_IPP=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX= -D OPENCV_EXTRA_MODULES_PATH= -D PYTHON3_EXECUTABLE= -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=ON ..
编译完成后如下图所示,不过此处要注意一点,在编译时会下载相关的第三方库,要保证网络通畅,防止下载失败。
3. 编译安装
上一步完成CMake编译后,就可以进行make编译了,只需要输入一下指令即可,-j8表示用8个核心进行编译,具体设置可以根据你的电脑进行设置,数值越大编译越快。
make -j8
编译完成后,如下图所示:
接下来就是进行安装,只需要一下指令就可:
make install
安装完成后,会在你上文设置的安装路径下生成依赖文件,如下图所示:
4. 案例测试
首先创建一个新的C++文件main.cpp文件,在文件中添加以下代码:
#include "opencv2/opencv.hpp"int main(){ std::cout std::cout