各个平台下OpenCV的搭建

1. OpenCV源代码下载地址

https://opencv.org/releases/

 2. 在windows平台编译(mingw版本)

        2.1 下载cmake

https://cmake.org/files/

        2.2 配置编译器环境变量

         2.3 打开cmake-gui.exe

 
a.Use default native compilers 使用默认的本机编译器
b.Specify native compilers 指定本机编译器
c.Specify toolchain file for cross-compiling 指定用于交叉编译的工具链文件
d.Specify options for cross-compiling  指定交叉编译的选项

 

 之后开始配置

 配置完成后,会出现许多的选项这里我只选择opencv中最核心的功能其他暂不使用

  2.4 一些系统自动勾选的选项说明

BUILD_JAVA是一个CMake选项,用于控制在编译OpenCV库时是否编译Java API

BUILD_JPEG:控制是否编译支持JPEG格式图像的模块。

BUILD_OPENJPEG:控制是否编译支持OpenJPEG格式图像的模块。

BUILD_PACKAGE:控制是否构建软件包。

BUILD_PERF_TESTS:控制是否编译性能测试。启用此选项会增加编译时间.

BUILD_PNG:控制是否编译支持PNG格式图像的模块。

BUILD_PROTOBUF:控制是否编译支持Google Protobuf格式数据的模块。

BUILD_SHARED_LIBS:控制是否编译共享库。

BUILD_TESTS:控制是否编译单元测试。启用此选项会增加编译时间。

BUILD_TIFF:控制是否编译支持TIFF格式图像的模块。

BUILD_WEBP:控制是否编译支持WebP格式图像的模块。

BUILD_ZLIB:控制是否编译支持zlib格式数据的模块。

CPACK_BINARY_NSIS:启用NSIS二进制打包,用于在Windows上构建安装程序。

CPACK_SOURCE_7Z:在发布包中包含7z格式的源代码.

CPACK_SOURCE_ZIP:在发布包中包含zip格式的源代码。

CV_ENABLE_INTRINSICS:启用底层硬件指令优化,加快运行速度。

CV_TRACE:启用OpenCV跟踪功能,可以输出调试信息到控制台。

DNN_ENABLE_PLUGINS:启用DNN模块的插件机制。

ENABLE_LIBJPEG_TURBO_SIMD:在处理JPEG图像时,启用libjpeg-turbo SIMD指令加速。

ENABLE_OMIT_FRAME_POINTER:启用-fomit-frame-pointer编译器选项,减少OpenCV库的代码大小。

ENABLE_PIC:启用-fPIC编译选项,生成位置无关代码,用于生成共享库。

HIGHGUI_ENABLE_PLUGINS:启用HighGUI模块的插件机制。

OPENCL_FOUND:启用OpenCL支持。

OPENCV_DNN_OPENVINO:启用OpenVINO专用DNN模块。

OPENCV_ENABLE_ALLOCATOR_STATS:启用OpenCV的内存分配器统计。

OPENCV_ENABLE_ATOMIC_LOG_LONG:启用线程安全的Atomic<int64_t>变量。

OPENCV_ENABLE_MEMALIGN:启用和aligned_malloc之间的切换。

OPENCV_GENERATE_SETUPVARS:在可安装包中包含一个顶级的setupvars脚本。

OPJ_USE_THREAD:启用OpenJPEG的多线程处理。

PARALLEL_ENABLE_PLUGINS:启用Parallel模块的插件机制。

USE_WIN32_FILEIO:强制使用Win32文件I / O。

VIDEOIO_ENABLE_PLUGINS:启用Video I/O模块的插件机制。

   2.5 核心功能选项说明(下面标黄的为最核心的核心功能)

BUILD_opencv_calib3d:控制是否编译相机标定和三维重建等计算机视觉相关的模块。

BUILD_opencv_core:控制是否编译包含图像处理函数、数学运算函数等基础功能的模块。

BUILD_opencv_dnn:控制是否编译深度神经网络相关的模块。

BUILD_opencv_features2d:控制是否编译特征检测和描述子提取等计算机视觉相关的模块。

BUILD_opencv_flann:控制是否编译快速近似最近邻搜索库。

BUILD_opencv_gapi:控制是否编译通用加速编程接口。

BUILD_opencv_highgui:控制是否编译用户界面操作、显示图像等模块。

BUILD_opencv_imgcodecs:控制是否编译读写图像文件相关的模块。

BUILD_opencv_imgproc:控制是否编译包含形态学、滤波、边缘检测等图像处理函数的模块。

BUILD_opencv_java_bindings_generator:控制是否编译为Java生成API绑定。

BUILD_opencv_js_bindings_generator:控制是否为JS生成API绑定。

BUILD_opencv_ml:控制是否编译机器学习相关的模块。

BUILD_opencv_objc_bindings_generator:控制是否为Objective-C生成API绑定。

BUILD_opencv_objdetect:控制是否编译人脸检测、行人检测等目标检测相关的模块。

BUILD_opencv_photo:控制是否编译包含颜色校正、图像融合、图像去噪等图像处理函数的模块。

BUILD_opencv_python_bindings_generator:控制是否为Python生成API绑定。

BUILD_opencv_python_tests:控制是否编译Python单元测试。

BUILD_opencv_stitching:控制是否编译图像拼接相关的模块。

BUILD_opencv_ts:控制是否编译OpenCV的测试套件。

BUILD_opencv_video:控制是否编译视频处理相关的模块。

BUILD_opencv_videoio:控制是否编译读写视频文件相关的模块。

    2.6 WITH选项说明

WITH_1394:启用1394摄像机支持。

WITH_ADE:启用ADE影像库支持。

WITH_ARITH_DEC:启用Arithmetic Code Decoding支持。

WITH_ARITH_ENC:启用Arithmetic Code Encoding支持。

WITH_DIRECTX:启用DirectX支持。

WITH_DSHOW:启用DirectShow支持。

WITH_EIGEN:启用Eigen支持,这是一个开源的线性代数库。

WITH_FFMPEG:启用FFmpeg支持,用于读取和写入各种音频视频文件格式。

WITH_GSTREAMER:启用GStreamer支持,该协议库提供了音频和视频媒体框架。

WITH_IMGCODEC_HDR:启用HDR图像格式编解码支持。

WITH_IMGCODEC_PFM:启用PFM图像格式编解码支持。

WITH_IMGCODEC_PXM:启用PXM图像格式编解码支持。

WITH_IMGCODEC_SUNRASTER:启用Sun Raster图像格式编解码支持。

WITH_ITT:启用Intel Thread Profiler支持。

WITH_JASPER:启用Jasper支持,用于JPEG2000像格式的编解码。

WITH_JPEG:启用JPEG图像格式的编解码。

WITH_LAPACK:启用LAPACK支持,用于线性代数计算。

WITH_OBSSENSOR:启用OBSSensor支持,用于识别运动物体。

WITH_OPENCL:启用OpenCL支持,用于开启计算机视觉和数字信号处理算法的并行处理。

WITH_OPENCLAMDBLAS:启用AMD OpenCL BLAS库支持。

WITH_OPENCLAMDFFT:启用AMD OpenCL FFT库支持。

WITH_OPENCL_D3D11_NV:启用NVIDIA Direct3D 11与OpenCL交互支持。

WITH_OPENEXR:启用OpenEXR支持,用于高动态范围图像的编解码。

WITH_OPENJPEG:启用OpenJPEG支持,用于JPEG2000图像格式的编解码。

WITH_PNG:启用PNG图像格式的编解码。

WITH_PROTOBUF:启用Google Protobuf支持,用于序列化和反序列化。

WITH_PTHREADS_PF:启用Linux和BSD线程支持。

WITH_QT:启用Qt支持,用于创建图形界面应用程序。

WITH_QUIRC:启用QR码生成与解码支持。

WITH_TIFF:启用TIFF图像格式的编解码。

WITH_VTK:启用VTK支持,用于创建复杂三维模型并进行可视化。

WITH_WEBP:启用WebP图像格式的编解码。

WITH_WIN32UI:启用Win32 UI支持,用于创建Windows应用程序的图形用户界面。

     2.6 其他选项说明

CCITT:使用CCITT Group 3或Group 4压缩算法,用于黑白图像压缩。

LGLUV:使用LGLUV色彩空间,用于压缩图像色彩。

LZW:使用LZW压缩算法,用于压缩TIFF格式图像。

MDI:使用MDI压缩算法,这是一种特定于Apple QuickDraw的压缩算法。

NEXT:使用NEXT压缩算法,这是一种特定于NeXT系统的压缩算法。

PACKBITS:使用PACKBITS压缩算法,用于压缩TIFF格式图像。

THUNDER:使用THUNDER压缩算法,这是一种特定于Thunder Scan的压缩算法

        2.7 再次点击Configure之后,红色消失,最后点击Generate

         2.8 找到build文件夹开始编译

mingw32-make

 mingw32-make.exe install

3.结束

成功编译了3个核心模块 其他模块功能之后要用在编译即可

4.总结

    编译opencv时要清先搞清楚每一个选项的作用,每一个选项的含义。

    ubuntu端和设备端整体步骤类似,只要清楚每一步要去干什么,便不会在编译上遇到问题,遇到问题也知道方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值