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
默认:关闭文章来源:https://www.toymoban.com/news/detail-538072.html
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模板网!