OpenCV 配置方法

FreeGuideOnline 最新 2026-07-16

D:\opencv\build\x64\vc16\bin (VS2019/2022 对应 vc16/vc17) D:\opencv\build\bin

“vc16” 对应 Visual Studio 2019,vc17 对应 2022,按实际编译器版本选择。  
(添加后需重启计算机或刷新环境变量)

3. **配置 Visual Studio 项目**  
创建一个新 C++ 控制台项目,然后打开项目属性(右键项目 → 属性):
- **包含目录**(C/C++ → 常规 → 附加包含目录)添加:
  ```
  D:\opencv\build\include
  D:\opencv\build\include\opencv2
  ```
- **库目录**(链接器 → 常规 → 附加库目录)添加:
  ```
  D:\opencv\build\x64\vc16\lib
  ```
- **附加依赖项**(链接器 → 输入 → 附加依赖项)添加 lib 文件名。  
  Debug 模式使用 `opencv_world490d.lib`,Release 使用 `opencv_world490.lib`(版本号 4.9.0 示例,需与你的版本一致)。带 `d` 的是 Debug 库。

4. **测试代码**  
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    cv::Mat img = cv::imread("test.jpg");
    if (img.empty()) {
        std::cout << "Could not read image" << std::endl;
        return -1;
    }
    cv::imshow("Display window", img);
    cv::waitKey(0);
    return 0;
}

确保项目配置的位数(x64)与库匹配,运行即可显示图片。

使用 CMake 从源码编译

当你需要定制模块(如 OpenCV Contrib)或使用非默认编译器时,推荐这种方式。

  1. 安装必需工具

    • CMake (版本 ≥ 3.15)
    • Visual Studio(含 C++ 桌面开发工作负载)
    • (可选)OpenCV Contrib 源码,从 GitHub 下载与 OpenCV 主库同版本号的 contrib 仓库。
  2. 生成 Visual Studio 工程
    解压主库源码到 D:\opencv_source,Contrib 源码到 D:\opencv_contrib
    打开 CMake GUI:

    • “Where is the source code” 选择 D:\opencv_source
    • “Where to build the binaries” 选择 D:\opencv_build
    • 点击 Configure,选择 Visual Studio 生成器(例如 Visual Studio 17 2022),平台选择 x64。
    • 等待初次配置完成,会出现大量红色条目。
      关键选项设置:
      • OPENCV_EXTRA_MODULES_PATH 设置为 D:\opencv_contrib/modules(如需 Contrib)
      • BUILD_opencv_world 打勾,生成单一的 opencv_world 库文件,方便链接
      • WITH_OPENMPWITH_TBB 等可根据需要启用,加速内部并行化
      • OPENCV_ENABLE_NONFREE 打勾(启用专利算法,如SIFT)
    • 再次点击 Configure 直至没有红色报错,然后点击 Generate 生成 VS 解决方案。
  3. 编译与安装
    用 Visual Studio 打开 D:\opencv_build\OpenCV.sln,确保配置为 Release / x64,右键 ALL_BUILD 生成,然后右键 INSTALL 生成,库文件会被安装到 D:\opencv_build\install 中。
    后续配置 Visual Studio 项目的方法与预编译库类似,include、lib、bin 分别对应 install 目录下的 includex64/vc17/libx64/vc17/bin

Linux 环境配置(C++)

多数 Linux 发行版可以直接用包管理器安装,但版本可能较旧。推荐从源码构建以获得最新版。

通过包管理器安装(快速但不一定最新)

Ubuntu/Debian:

sudo apt update
sudo apt install libopencv-dev

安装后 pkg-config 可用:

pkg-config --modversion opencv4

编译命令示例:

g++ main.cpp -o main `pkg-config --cflags --libs opencv4`

注意:若安装的是 OpenCV3,包名可能是 libopencv-dev 且 pkg-config 为 opencv

从源码编译(推荐)

  1. 安装依赖

    sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
        libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
        libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
        gfortran openexr libatlas-base-dev python3-dev python3-numpy \
        libtbb2 libtbb-dev libdc1394-dev
    
  2. 下载源码

    cd ~
    git clone https://github.com/opencv/opencv.git
    git clone https://github.com/opencv/opencv_contrib.git # 可选
    

    切换到你想要的版本标签,例如 git checkout 4.9.0

  3. 配置 CMake

    cd ~/opencv
    mkdir -p build && cd build
    cmake -D CMAKE_BUILD_TYPE=Release \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
          -D WITH_TBB=ON \
          -D WITH_V4L=ON \
          -D OPENCV_ENABLE_NONFREE=ON \
          -D BUILD_EXAMPLES=OFF ..
    

    如果需要 Python 绑定,可加上 -D BUILD_opencv_python3=ON(默认开启)。

  4. 编译安装

    make -j$(nproc)
    sudo make install
    sudo ldconfig
    
  5. 验证安装 编写 test.cpp,使用以下命令编译:

    g++ test.cpp -o test `pkg-config --cflags --libs opencv4`
    ./test
    

macOS 环境配置(C++)

macOS 通常使用 Homebrew 或从源码编译。

Homebrew 安装

brew install opencv

安装后使用 pkg-config 链接:

g++ test.cpp -o test `pkg-config --cflags --libs opencv4`

从源码编译(与 Linux 类似)

前提:安装 Xcode Command Line Tools 和 CMake。

xcode-select --install
brew install cmake

之后步骤与 Linux 基本一致,GTK 可替换为 Qt 依赖或使用原生 AVI 框架。配置时建议启用 -DWITH_QT=OFF 并保证 -DWITH_COCOA=ON 来使用 macOS 原生窗口系统。

Python 环境配置

Python 开发者配置 OpenCV 极简,推荐在虚拟环境中操作。

标准版 cv2 安装

pip install opencv-python

如果要使用 CV2 的扩展 GUI 功能(如 cv2.imshow 需要窗口系统),部分情况需要额外安装:

pip install opencv-python-headless  # 无 GUI 后端,仅适合服务器

通常直接安装 opencv-python 即可包含完整功能。

带 Contrib 的安装

pip install opencv-contrib-python

此包包含 opencv 主库和 contrib 额外模块,且已编译好,可直接使用 SIFT 等算法。
注意:opencv-contrib-pythonopencv-python 冲突,如需 contrib 只需安装前者。

验证安装

import cv2
print(cv2.__version__)
img = cv2.imread("test.jpg")
cv2.imshow("window", img)
cv2.waitKey(0)
cv2.destroyAllWindows()