AI编程助手
AI免费问答

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

看不見的法師   2025-08-01 08:16   701浏览 原创

一. 背景

当前维护的项目在 Windows 操作系统下运行,并使用了 OpenCV 4.5.2 版本。

我的本地开发环境是 Mac,并且使用了更新的 OpenCV 4.8.1 版本。为了与本地开发环境保持一致,我计划升级项目中使用的 OpenCV,因为该项目还利用了一些扩展模块的功能,因此需要自行编译。

本文旨在记录我在编译过程中遇到的问题,以避免以后重蹈覆辙,并为有需要的人提供参考。

二. 需要准备的软件

CMake 3.13 或更高版本,获取地址为:https://www.php.cn/link/fa6d3cc166fbfbf005c9e77d96cba283

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

Visual Studio 2022 社区版,获取地址为:https://www.php.cn/link/5fa260f9aef5c32cc0ddf4934f058bdf

OpenCV 4.8.1 源码包,获取地址为:https://www.php.cn/link/8226961a64e331581440a90183cf0a1d

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

OpenCV 4.8.1 扩展模块源码包,获取地址为:https://www.php.cn/link/0a8d0a30ada365aee33dbf72fda7574e

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

三. 编译

3.1 使用 CMake

3.1.1 准备工作

将 OpenCV 4.8.1 源码包和扩展模块源码包解压到某个位置。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

打开 cmake-gui,设置 OpenCV 4.8.1 源码的位置和输出编译的二进制文件的位置。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

3.1.2 Configure

点击"Configure",会弹出一个窗口提示 build 目录尚未创建,是否需要创建。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

点击"Yes"后,CMake 会要求你选择生成项目的工具。我们选择 Visual Studio 2022。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

"Configure"配置成功后,会显示以下界面。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

此时,我们可以设置扩展模块的路径。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

如果需要编译 OpenCV World 模块,也需要在这里单独设置。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

然后再次点击"Configure"。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

此时,最好查看 CMake 的下载日志,以下是 CMake 的下载日志。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

我主要修改了以下几个地方:

之后重新"Configure"即可。

3.1.3 Generate

接下来,点击"Generate"生成使用 CMake 构建的项目。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

3.1.4 Open Project

最后点击"Open Project",启动 Visual Studio 2022 打开该项目。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

3.2 使用 Visual Studio 2022

在编译之前,首先配置 opencv_world 模块,然后选择 release 或 debug 模式。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

找到 CMakeTargets,选择 ALL_BUILD 进行生成。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

上述步骤生成成功后,选择 INSTALL 进行生成。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

INSTALL 生成成功后,编译过程大功告成。我们完成了 OpenCV 4.8.1 及其扩展模块的编译。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

我们可以在输出编译的二进制文件的目录(C:/opencv-4.8.1/newbuild)下找到 install 文件夹。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

install 文件夹最终输出的内容如下。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

我们也成功编译了 opencv_world 模块。

Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块

四. 总结

本文旨在便于日后查阅和查找。

整个编译过程花费了一天多才完成。编译时遇到了各种问题,但只要仔细阅读日志进行分析,总能找到解决方法

当然,自行编译 OpenCV 库有很多好处,可以根据自己的需要定制 OpenCV 库,可以针对特定的硬件平台优化 OpenCV 库等等。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。