You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取OpenCV模块列表及源码编译时禁用非必要模块(仅需imread)

关于OpenCV模块的两个问题解答

1. 如何获取OpenCV的模块列表?

获取模块列表分两种场景,已安装的OpenCV和源码中的模块:

  • 已安装的OpenCV(Python环境):直接在Python交互环境里运行cv2.getBuildInformation(),输出内容里会有一个Modules章节,清晰列出所有已编译安装的模块,包括启用和禁用状态。
  • 已安装的OpenCV(C++环境):如果是源码编译的版本,一般会自带opencv_version工具,在终端运行opencv_version --modules就能快速列出所有启用的模块;也可以查看编译时生成的CMakeCache.txt文件,里面的BUILD_opencv_*系列配置项,能直观看到各模块的启用情况。
  • OpenCV源码中的所有模块:直接打开OpenCV源码根目录下的modules文件夹,每个子文件夹对应一个模块;另外也可以查看源码根目录的CMakeLists.txt,里面定义了所有可选模块的清单。

2. 仅使用imread函数,编译OpenCV时如何禁用其他模块?

首先得明确:imread属于imgcodecs模块,而imgcodecs依赖于core模块(核心功能模块,必须保留),所以我们只需要保留这两个模块,禁用其他所有模块即可。

具体编译配置步骤:

  1. 先创建一个单独的build目录,进入目录后执行cmake命令,用以下参数精准控制模块:
    • 如果你的OpenCV版本是3.4及以上,推荐用BUILD_LIST参数直接指定要编译的模块,这是最简便的方式:
      cmake -DBUILD_LIST=core,imgcodecs <你的OpenCV源码路径>
      
    • 如果是更早的版本,需要逐个禁用其他模块,同时手动开启需要的模块:
      cmake -DBUILD_opencv_core=ON -DBUILD_opencv_imgcodecs=ON -DBUILD_opencv_*=OFF <你的OpenCV源码路径>
      
      这里的BUILD_opencv_*=OFF会禁用所有以opencv_开头的模块,再单独开启必需的core和imgcodecs。
  2. 完成cmake配置后,用make -j$(nproc)(Linux/macOS)或者对应的编译命令完成编译安装即可。

额外提醒:imgcodecs模块默认支持JPG、PNG等常见图像格式,如果不需要某些格式,可以额外添加参数禁用对应依赖库(比如-DWITH_JPEG=OFF),但如果只是需要基础的imread功能,保持默认配置就足够。


内容的提问来源于stack exchange,提问作者mrgloom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:24:04