Ubuntu 安装 OpenCV:从依赖准备到源码编译的完整梳理

木白
木白
发布时间:2026-08-23 | 11人浏览过
原创

前言

在 Ubuntu 上源码安装 OpenCV,看起来只是几条 `cmake` 和 `make` 命令,但真正容易出问题的通常是依赖没装全、`opencv_contrib` 版本不匹配,或者装完后系统仍找不到库文件。下面按实际安装顺序把关键步骤重新整理一遍,并把安装后最常见的路径配置和验证方法单独拆开,方便你判断问题是出在编译阶段,还是出在环境变量和动态库加载阶段。

不少人在 Ubuntu 上装 OpenCV 时,卡住的往往不是编译本身,而是版本对应、依赖缺失和安装后系统找不到库文件这几个环节。下面按“下载准备、依赖安装、源码编译、环境配置、结果验证”的顺序重新梳理一遍,保留原始命令和关键路径,方便你直接照着排查和执行。

先准备源码包:opencv 与 opencv_contrib 要配套

安装前需要先下载两份源码:

  • opencv
  • opencv_contrib

这里最关键的一点是:opencv_contrib 的版本必须和前面下载的 opencv 版本一致。如果版本不对应,后续在编译阶段就可能出现模块不兼容或配置失败。

两个都下载完成后,把 opencv_contrib 放到解压后的 opencv 文件夹里面,后面的构建过程再继续进行。

先把依赖装全,避免编译阶段反复报错

源码安装 OpenCV 之前,先把基础构建工具和常见图像处理依赖安装好。

基础构建工具

sudo apt-get install build-essential

这一步主要是安装编译 C/C++ 项目需要的基础工具链。

CMake 与常用媒体相关依赖

sudo apt-get install cmake git libgtk2.0-dev pkg-config liba vcodec-dev liba vformat-dev libswscale-dev

这组依赖主要覆盖构建工具、图形界面支持以及音视频处理相关库。原文中的包名保持不变,执行前建议你自行确认系统源中对应软件包名称是否可用。

Python 与图像开发库

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

这个命令会安装一系列开发库,包括 Python 开发库、NumPy,以及 JPEG、PNG、TIFF、Jasper 和 DC1394 相机驱动相关支持库。对很多图像处理和计算机视觉项目来说,这些库都是后续编译和运行时的常见前提。

开始编译安装:按 build 目录完成 CMake 与 make

依赖准备好之后,就可以进入源码目录开始构建。

OpenCV 源码安装流程图,概括下载、依赖、编译和安装后的配置关系。
OpenCV 源码安装主流程从源码包准备到完成安装,最容易出问题的环节主要集中在版本对应、CMake 生成和安装后路径配置。

1. 在 opencv 目录下新建 build 文件夹

cd opencv
mkdir build

2. 进入 build 目录执行 cmake

cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON ..

这里有三个关键参数:

  • CMAKE_BUILD_TYPE=Release:以 Release 模式构建
  • CMAKE_INSTALL_PREFIX=/usr/local:安装路径指定为 /usr/local
  • OPENCV_GENERATE_PKGCONFIG=ON:生成后续可供 pkg-config 使用的配置

3. 编译源码

sudo make -j8
或者
sudo make -j4

-j8 和 -j4 表示并行编译线程数,具体使用哪个,取决于你的机器配置。

4. 安装到系统目录

sudo make install

安装后别漏掉库路径配置

如果这一步不做,系统可能已经完成安装,但运行时仍然找不到 OpenCV 的动态库。

OpenCV 安装后系统配置关系图,展示动态库路径与 pkg-config 环境变量的作用。
安装后的路径与环境变量配置很多“已经装好但系统找不到 OpenCV”的问题,往往都出在动态库路径和。

1. 编辑动态库配置文件

sudo gedit /etc/ld.so.conf

2. 添加库路径

在文件中加入下面这行:

/usr/loacal/lib

这里保留原文写法。实际操作时你需要特别留意路径是否拼写正确,因为库路径配置对后续加载是否成功有直接影响。

3. 刷新链接库缓存

sudo ldconfig

补齐 pkg-config 环境变量,方便查询和调用

为了让系统能通过 pkg-config 找到 OpenCV,还需要继续补环境变量。

1. 打开系统级 bash 配置

sudo gedit /etc/bash.bashrc

2. 在文件末尾添加以下两行

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

3. 重新加载配置

source /etc/bash.bashrc

4. 查看 OpenCV 版本是否可被识别

pkg-config opencv --modversion

如果这里能正常输出版本号,说明 pkg-config 这一层已经打通。

最后做一次示例测试

安装完成后,可以直接进入 OpenCV 自带示例目录做一次简单验证。

进入 opencv/samples/cpp/example_cmake 目录,在终端依次执行:

cmake .
make
./opencv_example

如果示例能够顺利完成编译并运行,通常就说明这次源码安装已经基本成功。

本站声明

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

Python 相关产品和应用

全部下载

专题列表