opencv常用编译选项

这篇具有很好参考价值的文章主要介绍了opencv常用编译选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv常用编译选项

打印配置选项

# 打印所有选项
cmake -L
# 打印所有选项和帮助信息
cmake -LH
# 打印所有选项,包括高级
cmake-LA

1. 构建Debug版本或Release版本

-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_BUILD_TYPE=Release

2. 关闭 测试、示例和应用程序的构建

-DBUILD_TESTS=OFF 
-DBUILD_PERF_TESTS=OFF 
-DBUILD_EXAMPLES=OFF 
-DBUILD_opencv_apps=OFF 

3.构建有限的模块集

每个模块都是该modules目录的一个子目录。可以禁用一个模块:

-DBUILD_opencv_calib3d=OFF

相反的选项是只构建指定的模块和它们依赖的所有模块:

-DBUILD_LIST=calib3d,videoio,ts

在此示例中,我们请求了 3 个模块,配置脚本已自动确定所有依赖项:

--OpenCV modules:
--To be built:      calib3d core features2d flann highgui imgcodecs imgproc ts videoio

4. 配置代理

配置脚本可以尝试从互联网上下载额外的库和文件,如果失败,相应的功能将被关闭。可以配置代理帮助下载成功。

export http_proxy=代理主机:端口
export https_proxy=代理主机:端口

5. CPU优化级别

在 x86_64 机器上,库将默认编译为 SSE3 指令集级别。此级别可以通过配置选项更改:

-DCPU_BASELINE=AVX,AVX2

6. CUDA支持

默认:关闭

-DWITH_CUDA=ON 

7. OpenCL 支持

默认:开启

-DWITH_OPENCL=OFF

8. 图片读写(imgcodecs模块)

opencv自己支持的格式:

BMP
HDR (WITH_IMGCODEC_HDR)
Sun Raster (WITH_IMGCODEC_SUNRASTER)
PPM, PGM, PBM, PFM (WITH_IMGCODEC_PXM, WITH_IMGCODEC_PFM)

PNG, JPEG, TIFF, WEBP 格式:

Formats Option Default Force build own
PNG WITH_PNG ON BUILD_PNG
JPEG WITH_JPEG ON BUILD_JPEG
TIFF WITH_TIFF ON BUILD_TIFF
WEBP WITH_WEBP ON BUILD_WEBP
JPEG2000 with OpenJPEG WITH_OPENJPEG ON BUILD_OPENJPEG
JPEG2000 with JasPer WITH_JASPER ON (OpenJPEG关闭才生效) BUILD_JASPER
EXR WITH_OPENEXR ON BUILD_OPENEXR

OpenJPEG比已弃用的JasPer具有更高的优先级。如果要使用 JasPer,则必须禁用 OpenJPEG。

只保留常用的格式并使用自己构建的库

-DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_OPENJPEG=OFF -DWITH_JASPER=OFF -DWITH_OPENEXR=OFF -DBUILD_PNG=ON -DBUILD_JPEG=ON

9. 视频读写(videoio模块)

Video4Linux

WITH_V4L (Linux; default: ON )

FFmpeg

WITH_FFMPEG (default: ON)

10. 并行处理

一些 OpenCV 算法可以使用多线程来加速处理。OpenCV 可以使用其中一种线程后端构建。

线程池:基于pthreads库的默认后端在 Linux、Android 和其他类 Unix 平台上可用。线程池在OpenCV中实现,可以通过环境变量进行控制OPENCV_THREAD_POOL_*。
默认:开启

WITH_PTHREADS_PF

TBB:Threading Building Blocks是一个用于并行编程的跨平台库。
OpenCV 可以从 GitHub 下载和构建 TBB 库,这个功能可以通过BUILD_TBB选项启用。
默认:关闭

WITH_TBB

OpenMP:OpenMP API 依赖于编译器支持,多线程并行处理。
默认:关闭

WITH_OPENMP

HPX:高性能 ParallelX是一个更适合多处理器环境的实验性后端。
默认:关闭

WITH_HPX

11. OpenGL

默认:关闭

WITH_OPENGL

OpenGL 集成可用于绘制具有以下后端的硬件加速窗口:GTK、WIN32 和 Qt。并启用与 OpenGL 的基本互操作性。文章来源地址https://www.toymoban.com/news/detail-538072.html

12. 深度学习神经网络推理后端和选项(dnn 模块)

选项 默认 描述
WITH_PROTOBUF ON 启用protobuf库搜索。OpenCV 可以构建自己的库副本或使用外部库。dnn模块需要此依赖项,如果找不到,模块将被禁用。
BUILD_PROTOBUF ON 构建自己的protobuf副本。如果要使用外部库,则必须禁用。
PROTOBUF_UPDATE_FILES OFF 重新生成所有 .proto 文件。必须安装与使用的protobuf版本兼容的protoc编译器。
OPENCV_DNN_OPENCL ON 启用内置 OpenCL 推理后端。
WITH_INF_ENGINE OFF 自 OpenVINO 2022.1 起已弃用启用英特尔推理引擎 (IE)后端。允许以 IE 格式 (.xml + .bin) 执行网络。推理引擎必须作为OpenVINO 工具包的一部分安装,或者作为从源构建的独立库安装。
INF_ENGINE_RELEASE 2020040000 自 OpenVINO 2022.1 起已弃用定义与 OpenVINO 工具套件版本相关的推理引擎库版本。必须是 10 位数字的字符串,例如2020040000对于 OpenVINO 2020.4。
WITH_NGRAPH OFF 自 OpenVINO 2022.1 起已弃用启用英特尔 NGraph 库支持。该库是推理引擎后端的一部分,它允许执行从 OpenCV 支持的多种格式的文件中读取的任意网络:Caffe、TensorFlow、PyTorch、Darknet 等。必须安装 NGraph 库,它包含在推理引擎中。
WITH_OPENVINO OFF 启用英特尔 OpenVINO 工具套件支持。应该用于 OpenVINO>=2022.1 而不是WITH_INF_ENGINEand WITH_NGRAPH。
OPENCV_DNN_CUDA OFF 启用 CUDA 后端。必须安装CUDA、 CUBLAS 和CUDNN 。
WITH_HALIDE OFF 使用实验性Halide后端,它可以在运行时为 dnn 层生成优化代码。必须安装卤化物。
WITH_VULKAN OFF 启用实验性Vulkan后端。不需要额外的依赖项,但可以使用外部 Vulkan 标头 ( VULKAN_INCLUDE_DIRS)。
WITH_TENGINE OFF 为 ARM CPU启用实验性Tengine后端。必须安装 Tengine 库。

13. 示例:

cmake   -DCMAKE_BUILD_TYPE=Release      \ 
        -DOPENCV_EXTRA_MODULES_PATH=/liangbaikai/opencv_contrib-4.6.0/modules/  \ 
        -DCMAKE_INSTALL_PREFIX=/liangbaikai/install/ \ 
        -DWITH_CUDA=ON                  \ 
        -DOPENCV_DNN_CUDA=ON            \
        -DCUDA_CUDA_LIBRARY=/usr/local/cuda-10.0/lib64/stubs/libcuda.so  \ 
        -DBUILD_opencv_world=ON         \ 
        -DBUILD_JPEG=ON                 \ 
        -DBUILD_PNG=ON                  \ 
        -DWITH_TBB=ON                   \ 
        -DBUILD_TBB=ON                  \
        -DWITH_OPENMP=ON                \
        -DBUILD_SHARED_LIBS=ON          \ 
        -DWITH_OPENCL=OFF               \ 
        -DBUILD_TESTS=OFF               \
        -DBUILD_PERF_TESTS=OFF          \
        -DBUILD_EXAMPLES=OFF            \
        -DBUILD_opencv_apps=OFF         \
        -DWITH_FFMPEG:BOOL=OFF          \ 
        -DBUILD_opencv_videoio=OFF  ..
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_EXTRA_MODULES_PATH=/liangbaikai/opencv_contrib-4.6.0/modules/ -DCMAKE_INSTALL_PREFIX=/liangbaikai/install/ -DWITH_CUDA=ON     -DOPENCV_DNN_CUDA=ON  -DCUDA_CUDA_LIBRARY=/usr/local/cuda-10.0/lib64/stubs/libcuda.so  -DBUILD_opencv_world=ON -DBUILD_JPEG=ON  -DBUILD_PNG=ON -DWITH_TBB=ON -DBUILD_TBB=ON -DWITH_OPENMP=ON -DBUILD_SHARED_LIBS=ON  -DWITH_OPENCL=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_opencv_apps=OFF -DWITH_FFMPEG:BOOL=OFF -DBUILD_opencv_videoio=OFF  ..

到了这里,关于opencv常用编译选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能课程】计算机科学博士作业一

    模型拟合:用深度神经网络拟合一个回归模型。从各种角度对其改进,评价指标为MSE。 掌握技巧: 熟悉并掌握深度学习模型训练的基本技巧。 提高PyTorch的使用熟练度。 掌握改进深度学习的方法。 数据集下载: Kaggle下载数据: https://www.kaggle.com/competitions/ml2022spring-hw1 百度云

    2024年01月23日
    浏览(41)
  • 人工智能与计算机辅助决策的技术融合

    人工智能(Artificial Intelligence, AI)和计算机辅助决策(Computer-Aided Decision, CAD)是两个不同的领域,但它们之间存在密切的联系和相互作用。人工智能主要关注于模拟和创造人类智能的机器,包括学习、理解自然语言、视觉识别、推理和决策等方面。而计算机辅助决策则关注于利用

    2024年02月22日
    浏览(46)
  • hnu计算机与人工智能概论5.6

    最近有点忙,好久没更新了,大家见谅!最后一关howell也做不出来  第1关:数据分析基础 1.将scores.xls文件读到名为df的dataframe中 2.添加平均分列:考勤、实验操作、实验报告的平均 3.输出前3行学生的平均分列表,控制小数点后两位 4.输出学生人数和班级数 5.分别输出实验报

    2024年02月04日
    浏览(37)
  • hnu计算机与人工智能概论答案3.8

    连夜更新,求求关注!! 写在前面:这一课难度较低,报错时多看看冒号和缩进有无错误,祝大家做题顺利!!! 第1关:python分支入门基础 根据提示,在右侧编辑器补充代码,完成分支程序设计(用函数调用的方式来实现)。 第1题: 闰年的判断:判断某一年是否是闰年,

    2024年02月08日
    浏览(32)
  • hnu计算机与人工智能概论答案3.15

     终于肝完了!有一说一,这一次难度肉眼可见的提升,终于明白程序员为什么会秃顶了(头发真的禁不住薅啊),祝大家好运! 第1关:循环结构-while与for循环 第1题 编程计算如下公式的值1^2+3^2+5^2+...+995^2+997^2+999^2并输出结果 第2题 用 while 语句完成程序逻辑,求如下算法可

    2024年02月08日
    浏览(38)
  • hnu计算机与人工智能概论答案2.20

    补一下第一次作业 第1关:数据输入与输出 第一题 在屏幕上输出字符串:hi, \\\"how are you\\\" ,I\\\'m fine and you 第二题 从键盘输入两个整数,计算两个数相除的商与余数 假设输入12,5 输出为 2 2 第三题 在屏幕上 输入一个三位数输出该数的个位、十位和百位数字 假设输入125 输出为 5 2

    2024年02月08日
    浏览(47)
  • 人工智能在计算机视觉中的应用与挑战

    引言 计算机视觉是人工智能领域的一个重要分支,旨在让计算机能够像人一样理解和解释视觉信息,实现图像和视频的自动识别、理解和分析。计算机视觉技术已经在许多领域产生了深远的影响,如人脸识别、自动驾驶、医学影像分析等。本篇博客将深入探讨人工智能在计算

    2024年02月14日
    浏览(43)
  • 探索人工智能 | 计算机视觉 让计算机打开新灵之窗

    计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 计算机视觉既是工程领域,也是科学领域中的一个富

    2024年02月14日
    浏览(39)
  • hnu计算机与人工智能概论5.26(方程求根)

    第1关:用暴力搜索法求方程的近似根  本关任务:用暴力搜索法求 f(x)=x3−x−1 在[-10,10]之间的近似根。已知f(-10)0,f(10)0,画图可知函数在[-10,10]区间有且仅有一个根。要求近似根带入函数f(x)之后,函数值与0之间的误差在 10−6 之内,请保留4位小数输出该根值,并输出搜寻次

    2024年02月03日
    浏览(33)
  • 读十堂极简人工智能课笔记04_计算机视觉

    3.2.3.1. 应该发现真正的边缘,而尽量避免错报 3.2.4.1. 应该正确地找出边缘的确切位置 3.2.5.1. 每条实际的边缘应该检测为一条边缘,而不是多条边缘 4.7.5.1. 有数以百万计的几乎任何种类的图像例子 4.7.7.1. 神经网络自己就能完成这一切

    2024年02月19日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包