Python环境下使用CMake编译安装OpenCV 4.1.1及非免费算法配置指南

小林子
小林子
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍在Python环境下通过CMake从源码编译安装OpenCV 4.1.1的完整流程。针对pip安装版本不支持GPU及专利算法的问题,指导如何配置Visual Studio与CMake环境,解决ippicv下载失败等常见构建错误。重点讲解如何通过OPENCV_EXTRA_MODULES_PATH和OPENCV_ENABLE_NONFREE选项启用SIFT、SURF等受专利保护的算法,并提供离线下载解决方案及VS生成步骤,适用于需要高级图像处理功能的开发者。

引言:OpenCV 4.1.1安装背景

在Python环境中使用CMake安装并配置OpenCV 4.1.1,旨在解决常规安装方式下的诸多限制与兼容性问题。

方法一:常规pip安装及其局限性

方法一:常规pip安装及其局限性

Python用户通常可以直接通过命令 pip install opencv-contrib-python==3.4.x.x 进行安装,老版本的库中包含了SIFT等经典算法。然而,这种安装方式不支持GPU加速。对于希望使用更高级算法,或希望从JAVA等其他语言调用OpenCV的场景,必须采用更高版本的源码编译方式。下文将介绍另一种更灵活的安装方法。

需要注意的是,常规编译默认不提供SIFT和SURF算法,因为这两项算法已申请专利。若需使用这两个功能,必须通过CMake设置OPENCV_ENABLE_NONFREE选项。由于涉及专利问题,请勿将这些功能用于商业用途。

方法二:从源码构建OpenCV

方法二:从源码构建OpenCV

目前OpenCV已更新至4.1.1版本。编译生成的可执行文件或库默认不包含SIFT等专利算法,这些算法已从OpenCV基本库中剥离,单独作为一个源文件存在。因此,必须通过CMake工具将其加载到开发环境中才能使用。

环境准备

环境准备阶段需完成以下配置:

  • 首先,安装Visual Studio 2015的最后一个升级版本,或者Visual Studio 2017及更高版本。在安装过程中,务必勾选“C++桌面开发”中的C编译器组件,否则后续编译过程将无法找到必要的编译工具。
  • 在CMake配置过程中,系统会自动下载一些配置文件,此过程速度极慢且容易断线。如果无法下载相关配置,可联系作者获取后续分享的百度网盘链接,该资源将免费提供。

软件下载与依赖安装

1. 下载所需软件:前往MSDN下载Visual Studio 2015的最后一个社区版升级版本(低级版本可能导致编译失败),同时下载CMake软件。

2. 安装Python和Numpy库。也可以直接下载Anaconda发行版,以免去单独安装库的麻烦(作者使用的是Anaconda)。由于OpenCV的所有数组结构最终都转换为Numpy数组格式,Numpy库的性能表现非常优秀。

3. 安装CMake,并解压OpenCV源码包。

CMake配置步骤

4. 进行CMake配置:

在Source code(源码目录)一栏中,指定你解压后的OpenCV代码根路径。

  1. 在路径下创建一个名为build的文件夹,用于存放构建生成的二进制文件。
  2. 点击Configure后,会弹出窗口让你配置VS版本,并选择系统架构是win32还是x64(默认为win32,需根据电脑系统实际情况修改,作者将其改为x64)。
  3. 点击Configure按钮后,OpenCV开始进行构建配置。
  4. 此时不要退出窗口,继续查看后续配置步骤。

[图片占位符 a0]

5. 中间区域显示的是构建信息(简要查看即可,作者选择的是默认配置):

  • WITH区域可以选择你需要的额外功能,例如是否支持GPU加速等。
  • BUILD区域可以配置具体的构建方法。
  • 由于OpenCV-python官方预编译包不支持GPU,因此在此处可以取消相关GPU选项的操作。

非免费算法(SIFT/SURF)配置

6. 由于最新OpenCV版本仅包含稳定且无版权费用的算法,像SIFT和SURF这类有专利保护的算法需要另行安装配置。

  1. 在刚才的CMake界面中,找到OPENCV_EXTRA_MODULES_PATH选项,将其修改为指向opencv-contrib源码中的modules文件夹路径(如下图所示)。
  2. 再次点击Configure,可以看到xfeatures2d等功能正在加载。偶尔可能会出现下载失败的情况,此时只能暂时省略相关模块(网上也有其他手动处理方法,鉴于后续失败率较高,建议采用离线方式)。
  3. 手动下载所需文件(其他文件查找较为困难),例如ippicv_2019_win_intel64_20180723_general.zip。
  4. 安装参考博客《OpenCV解决ippicv下载问题》,对于Linux环境,需离线下载ippicv_2019_lnx_intel64_general_20180723.tgz。
  5. [图片占位符 a1,时间戳1569740558974]


或者联系作者获取相关资源。

生成与安装

7. 点击Generate生成Visual Studio项目文件。

8. 进入D:/WORK/OpenCVconf/opencv-4.1.1/build目录,打开OpenCV.sln文件。官方文档建议先执行ALL_BUILD生成,然后执行INSTALL生成以完成安装。


安装opencv-contrib模块

安装opencv-contrib模块

该模块包含了SIFT等受版权保护的算法,需要在CMake中设置以下内容:

在CMake软件设置中,将OPENCV_EXTRA_MODULES_PATH指向opencv-contrib的modules文件夹(路径示例为70,具体视实际路径而定)。

勾选OPENCV_ENABLE_NONFREE选项,然后点击Configure和Generate,最后重新生成解决方案即可。

若仍有构建失败的情况,可在BUILD区域取消勾选相关的项目。

常见问题总结

总结

  • 主要问题往往在于Visual Studio版本过低,建议使用较新版本。
  • CMake下载配置文件时容易失败,必须确保网络畅通或准备好离线包。
  • Fwall(防火墙)不要额外勾选安装不需要的配置,以免干扰构建。

以上所述是小编给大家介绍的Python下CMake安装配置OpenCV 4.1.1的方法,希望对大家有所帮助。如果大家有任何疑问请留言,小编会及时回复。在此也非常感谢大家对本站网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表