Windows C++版本的opencv4.8+opencv-contrib,使用vs2019编译

上传者: qingfengxiaosong | 上传时间: 2025-07-03 03:52:29 | 文件大小: 75.05MB | 文件类型: ZIP
在Windows环境下,开发C++应用并利用OpenCV库是一个常见的需求。OpenCV是一个强大的计算机视觉库,它提供了许多用于图像处理、计算机视觉以及机器学习的函数。本篇将详细介绍如何在Windows系统上,使用CMake和Visual Studio 2019(VS2019)来编译OpenCV 4.8.0以及opencv_contrib模块。 你需要确保已经安装了以下软件: 1. **Visual Studio 2019**:Microsoft的集成开发环境(IDE),支持C++项目开发。 2. **CMake**:一个跨平台的自动化构建系统,用于管理项目构建过程。 3. **Git**:版本控制系统,用于下载OpenCV源代码。 4. **OpenCV 4.8.0**:官方OpenCV库,可以从GitHub上获取。 5. **opencv_contrib**:OpenCV的扩展模块,包含额外的功能和算法。 编译步骤如下: 1. **下载源代码**:使用Git克隆OpenCV和opencv_contrib的仓库到本地。运行以下命令: ``` git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git ``` 2. **设置CMake**:打开CMake,指定源代码目录(opencv和opencv_contrib的根目录)和构建目录。构建目录是新建的一个空文件夹,用于存放生成的解决方案和编译结果。 3. **配置CMake**:在CMake的GUI中,设置编译选项。确保以下选项被选中: - `BUILD_opencv_world` - `WITH_CUDA`(如果你的系统支持CUDA并希望使用GPU加速) - `OPENCV_EXTRA_MODULES_PATH` 指向opencv_contrib的`modules`目录 还可以根据需要选择其他模块,如`BUILD 示例`,`WITH_QT`等。 4. **生成项目文件**:点击CMake的“Configure”按钮,然后根据提示选择Visual Studio的版本(例如,选择`Visual Studio 16 2019`和`Win64`以创建64位项目)。配置完成后,再次点击“Generate”生成VS项目文件。 5. **打开并编译项目**:在生成的构建目录下,你会发现一个.sln文件,用VS2019打开它。在解决方案资源管理器中,选择所有项目,右键单击并选择“生成”。这将编译OpenCV库及其所有依赖项。 6. **安装OpenCV**:编译完成后,选择解决方案中的`install`项目并生成,这会将编译好的库和头文件复制到指定的安装目录。 7. **配置环境变量**:为了让其他项目能够找到编译后的OpenCV库,你可能需要添加库目录到系统的`PATH`环境变量,以及`OPENCV_DIR`环境变量指向库的安装路径。 8. **测试编译结果**:编写一个简单的C++程序,使用OpenCV的库函数,例如读取和显示图片,确保编译和链接成功。 通过以上步骤,你就成功地在Windows环境下编译了OpenCV 4.8.0及opencv_contrib模块,并准备好了在VS2019中使用它们进行C++开发。这个过程可能会遇到一些问题,如依赖库的缺失或版本不兼容,但只要你按照正确的步骤和解决遇到的问题,最终都能顺利完成编译。记得保持耐心,因为这是一项复杂但非常有价值的任务,让你能更好地理解和掌控OpenCV的内部工作。

文件下载

资源详情

[{"title":"( 640 个子文件 75.05MB ) Windows C++版本的opencv4.8+opencv-contrib,使用vs2019编译\n","children":[{"title":"ade-LICENSE <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"ittnotify-LICENSE.BSD <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false},{"title":"OpenCVConfig.cmake <span style='color:#111;'> 16.04KB </span>","children":null,"spread":false},{"title":"OpenCVConfig.cmake <span style='color:#111;'> 6.84KB </span>","children":null,"spread":false},{"title":"OpenCVModules.cmake <span style='color:#111;'> 4.13KB </span>","children":null,"spread":false},{"title":"OpenCVModules-release.cmake <span style='color:#111;'> 1.54KB </span>","children":null,"spread":false},{"title":"OpenCVModules-debug.cmake <span style='color:#111;'> 1.53KB </span>","children":null,"spread":false},{"title":"OpenCVConfig-version.cmake <span style='color:#111;'> 433B </span>","children":null,"spread":false},{"title":"OpenCVConfig-version.cmake <span style='color:#111;'> 433B </span>","children":null,"spread":false},{"title":"opencv_world480d.dll <span style='color:#111;'> 140.00MB </span>","children":null,"spread":false},{"title":"opencv_world480.dll <span style='color:#111;'> 71.91MB </span>","children":null,"spread":false},{"title":"opencv_videoio_ffmpeg480_64.dll <span style='color:#111;'> 25.13MB </span>","children":null,"spread":false},{"title":"opencv_img_hash480d.dll <span style='color:#111;'> 454.50KB </span>","children":null,"spread":false},{"title":"opencv_img_hash480.dll <span style='color:#111;'> 158.50KB </span>","children":null,"spread":false},{"title":"opencv_interactive-calibrationd.exe <span style='color:#111;'> 486.00KB </span>","children":null,"spread":false},{"title":"opencv_visualisationd.exe <span style='color:#111;'> 193.50KB </span>","children":null,"spread":false},{"title":"opencv_annotationd.exe <span style='color:#111;'> 174.00KB </span>","children":null,"spread":false},{"title":"opencv_interactive-calibration.exe <span style='color:#111;'> 138.00KB </span>","children":null,"spread":false},{"title":"opencv_versiond.exe <span style='color:#111;'> 119.00KB </span>","children":null,"spread":false},{"title":"opencv_version_win32d.exe <span style='color:#111;'> 116.50KB </span>","children":null,"spread":false},{"title":"opencv_model_diagnosticsd.exe <span style='color:#111;'> 94.50KB </span>","children":null,"spread":false},{"title":"opencv_waldboost_detectord.exe <span style='color:#111;'> 91.50KB </span>","children":null,"spread":false},{"title":"opencv_visualisation.exe <span style='color:#111;'> 53.50KB </span>","children":null,"spread":false},{"title":"opencv_annotation.exe <span style='color:#111;'> 40.00KB </span>","children":null,"spread":false},{"title":"opencv_version.exe <span style='color:#111;'> 36.00KB </span>","children":null,"spread":false},{"title":"opencv_version_win32.exe <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false},{"title":"opencv_waldboost_detector.exe <span style='color:#111;'> 21.00KB </span>","children":null,"spread":false},{"title":"opencv_model_diagnostics.exe <span style='color:#111;'> 20.50KB </span>","children":null,"spread":false},{"title":"ittnotify-LICENSE.GPL <span style='color:#111;'> 17.15KB </span>","children":null,"spread":false},{"title":"core_c.h <span style='color:#111;'> 125.75KB </span>","children":null,"spread":false},{"title":"msa_macros.h <span style='color:#111;'> 80.61KB </span>","children":null,"spread":false},{"title":"types_c.h <span style='color:#111;'> 69.69KB </span>","children":null,"spread":false},{"title":"kmeans_index.h <span style='color:#111;'> 66.30KB </span>","children":null,"spread":false},{"title":"imgproc_c.h <span style='color:#111;'> 49.83KB </span>","children":null,"spread":false},{"title":"dist.h <span style='color:#111;'> 40.32KB </span>","children":null,"spread":false},{"title":"cvdef.h <span style='color:#111;'> 36.14KB </span>","children":null,"spread":false},{"title":"constants_c.h <span style='color:#111;'> 30.44KB </span>","children":null,"spread":false},{"title":"cv_cpu_helper.h <span style='color:#111;'> 29.18KB </span>","children":null,"spread":false},{"title":"hierarchical_clustering_index.h <span style='color:#111;'> 25.87KB </span>","children":null,"spread":false},{"title":"autotuned_index.h <span style='color:#111;'> 20.55KB </span>","children":null,"spread":false},{"title":"kdtree_single_index.h <span style='color:#111;'> 20.17KB </span>","children":null,"spread":false},{"title":"kdtree_index.h <span style='color:#111;'> 19.99KB </span>","children":null,"spread":false},{"title":"lsh_table.h <span style='color:#111;'> 18.25KB </span>","children":null,"spread":false},{"title":"types_c.h <span style='color:#111;'> 17.75KB </span>","children":null,"spread":false},{"title":"lsh_index.h <span style='color:#111;'> 15.35KB </span>","children":null,"spread":false},{"title":"result_set.h <span style='color:#111;'> 14.92KB </span>","children":null,"spread":false},{"title":"index_testing.h <span style='color:#111;'> 10.55KB </span>","children":null,"spread":false},{"title":"highgui_c.h <span style='color:#111;'> 10.25KB </span>","children":null,"spread":false},{"title":"any.h <span style='color:#111;'> 8.40KB </span>","children":null,"spread":false},{"title":"cv_cpu_dispatch.h <span style='color:#111;'> 8.32KB </span>","children":null,"spread":false},{"title":"hdf5.h <span style='color:#111;'> 7.16KB </span>","children":null,"spread":false},{"title":"heap.h <span style='color:#111;'> 7.03KB </span>","children":null,"spread":false},{"title":"allocator.h <span style='color:#111;'> 6.12KB </span>","children":null,"spread":false},{"title":"all_indices.h <span style='color:#111;'> 6.01KB </span>","children":null,"spread":false},{"title":"composite_index.h <span style='color:#111;'> 5.96KB </span>","children":null,"spread":false},{"title":"nn_index.h <span style='color:#111;'> 5.95KB </span>","children":null,"spread":false},{"title":"saving.h <span style='color:#111;'> 5.77KB </span>","children":null,"spread":false},{"title":"simplex_downhill.h <span style='color:#111;'> 5.65KB </span>","children":null,"spread":false},{"title":"videoio_c.h <span style='color:#111;'> 5.51KB </span>","children":null,"spread":false},{"title":"calib3d_c.h <span style='color:#111;'> 5.24KB </span>","children":null,"spread":false},{"title":"cap_ios.h <span style='color:#111;'> 4.80KB </span>","children":null,"spread":false},{"title":"interface.h <span style='color:#111;'> 4.67KB </span>","children":null,"spread":false},{"title":"dynamic_bitset.h <span style='color:#111;'> 4.49KB </span>","children":null,"spread":false},{"title":"defines.h <span style='color:#111;'> 4.36KB </span>","children":null,"spread":false},{"title":"random.h <span style='color:#111;'> 4.04KB </span>","children":null,"spread":false},{"title":"params.h <span style='color:#111;'> 3.86KB </span>","children":null,"spread":false},{"title":"logger.h <span style='color:#111;'> 3.77KB </span>","children":null,"spread":false},{"title":"linear_index.h <span style='color:#111;'> 3.73KB </span>","children":null,"spread":false},{"title":"cvconfig.h <span style='color:#111;'> 3.30KB </span>","children":null,"spread":false},{"title":"ground_truth.h <span style='color:#111;'> 3.26KB </span>","children":null,"spread":false},{"title":"matrix.h <span style='color:#111;'> 3.22KB </span>","children":null,"spread":false},{"title":"object_factory.h <span style='color:#111;'> 2.86KB </span>","children":null,"spread":false},{"title":"sampling.h <span style='color:#111;'> 2.81KB </span>","children":null,"spread":false},{"title":"ios.h <span style='color:#111;'> 2.64KB </span>","children":null,"spread":false},{"title":"timer.h <span style='color:#111;'> 2.53KB </span>","children":null,"spread":false},{"title":"general.h <span style='color:#111;'> 2.17KB </span>","children":null,"spread":false},{"title":"config.h <span style='color:#111;'> 1.78KB </span>","children":null,"spread":false},{"title":"constants_c.h <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false},{"title":"interface.h <span style='color:#111;'> 1.00KB </span>","children":null,"spread":false},{"title":"macosx.h <span style='color:#111;'> 731B </span>","children":null,"spread":false},{"title":"interface.h <span style='color:#111;'> 551B </span>","children":null,"spread":false},{"title":"constants_c.h <span style='color:#111;'> 462B </span>","children":null,"spread":false},{"title":"constants_c.h <span style='color:#111;'> 398B </span>","children":null,"spread":false},{"title":"dummy.h <span style='color:#111;'> 197B </span>","children":null,"spread":false},{"title":"imgcodecs_c.h <span style='color:#111;'> 145B </span>","children":null,"spread":false},{"title":"intrin_rvv_010_compat_non-policy.hpp <span style='color:#111;'> 1.72MB </span>","children":null,"spread":false},{"title":"imgproc.hpp <span style='color:#111;'> 240.91KB </span>","children":null,"spread":false},{"title":"color_detail.hpp <span style='color:#111;'> 218.74KB </span>","children":null,"spread":false},{"title":"calib3d.hpp <span style='color:#111;'> 217.18KB </span>","children":null,"spread":false},{"title":"mat.hpp <span style='color:#111;'> 161.75KB </span>","children":null,"spread":false},{"title":"intrin_avx512.hpp <span style='color:#111;'> 157.27KB </span>","children":null,"spread":false},{"title":"core.hpp <span style='color:#111;'> 151.07KB </span>","children":null,"spread":false},{"title":"intrin_sse.hpp <span style='color:#111;'> 131.97KB </span>","children":null,"spread":false},{"title":"intrin_avx.hpp <span style='color:#111;'> 131.29KB </span>","children":null,"spread":false},{"title":"intrin_lasx.hpp <span style='color:#111;'> 130.81KB </span>","children":null,"spread":false},{"title":"intrin_wasm.hpp <span style='color:#111;'> 107.38KB </span>","children":null,"spread":false},{"title":"intrin_rvv.hpp <span style='color:#111;'> 104.64KB </span>","children":null,"spread":false},{"title":"intrin_cpp.hpp <span style='color:#111;'> 100.96KB </span>","children":null,"spread":false},{"title":"intrin_rvv071.hpp <span style='color:#111;'> 97.51KB </span>","children":null,"spread":false},{"title":"intrin_neon.hpp <span style='color:#111;'> 97.40KB </span>","children":null,"spread":false},{"title":"......","children":null,"spread":false},{"title":"<span style='color:steelblue;'>文件过多,未全部展示</span>","children":null,"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明