1. 准备
- 从github获取opencv和opencv_contrib源码,前者为opencv核心库后者为未被收录的一些新颖和实用的模块
cd ~/<你的代码存放目录> git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git
- 检查自己机器的环境,看是否满足最低要求,此处为4.10.0版本的要求
- CMake>=3.9
- 检查CMake版本
cmake --version
- 检查CMake版本
- Git
- Python >= 2.7 且 Numpy >= 1.5
- CMake>=3.9
2. 编译安装
- 配置
cd ~/<你的代码存放目录>/opencv
mkdir build
cd buid
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON -DBUILD_DOCS=ON -DOPENCV_EXTRA_MODULES_PATH=~/<你的代码目录>/opencv_contrib-4.10.0/modules -DCMAKE_INSTALL_PREFIX=/usr/local/opencv_4.10.0 ../
- -D 为定义一个CMake变量
- CMAKE_BUILD_TYPE : Release or Debug
- Release
- 优化:Release构建类型旨在最大程度地优化代码以提高性能。它通常会启用各种编译器优化选项,例如函数内联、循环展开和代码消除,以生成更小且执行速度更快的可执行文件。
- 调试信息:为了减小可执行文件的大小和提高运行效率,Release版本通常会禁用调试符号和额外的调试功能。这意味着,与Debug版本相比,Release版本的可执行文件更难以进行调试。
- 使用场景:Release版本适合在最终部署到生产环境或进行性能测试时使用。
- Debug
- 优化:与Release版本不同,Debug构建类型通常用于开发和调试阶段。为了保留变量和函数的实际布局并方便调试,Debug版本通常不会进行优化或只进行最低级别的优化。
- 调试信息:Debug版本包含了调试符号和额外的调试功能,例如运行时检查和断言。这些调试信息使得开发人员能够在调试器中更容易地定位和分析问题。
- 生成文件:在Debug模式下,编译器还会生成一些辅助文件,如调试信息文件(如Windows系统中的.pdb文件),以便在调试时使用。
- 使用场景:Debug版本适合在开发过程中进行代码调试和测试。
- Release
- BUILD_EXAMPLES: 是否构示例代码
- BUILD_DOCS:是否构建代码
- OPENCV_EXTRA_MODULES_PATH:扩展模块路径
- CMAKE_INSTALL_PREFIX:install时的安装路径
- 编译
make -j7 # 用七个并行线程去编译
- 安装
sudo make install
- 配置环境变量
vi ~/.zshrc
根据你的shell决定
export OPENCV_HOME=/usr/local/opt/opencv export PATH=$OPENCV_HOME/bin:$PATH export PKG_CONFIG_PATH=$OPENCV_HOME/lib/pkgconfig:$PKG_CONFIG_PATH export CPLUS_INCLUDE_PATH=$OPENCV_HOME/include:$CPLUS_INCLUDE_PATH export LIBRARY_PATH=$OPENCV_HOME/lib:$LIBRARY_PATH
2. `source ~/.zshrc`
3.验证
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main(int argc, char argv) { Mat image = imread("/<图片路径>"); if (image.empty()) { std::cout << "Could not open or find the image" << std::endl; return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", image); waitKey(0); return 0; }
注:CMake文件中要配置 find_package(OpenCV)并通过OpenCV_DIR=<path_to_build_or_install_directory> 来指明路径
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/692.html