Ubuntu 官方源无 OpenCV5 预编译 C++ 库,C++ 使用必须源码编译,下面适配 Ubuntu20.04/22.04/24.04 全版本,含基础版、CUDA 加速版、环境配置、项目测试全套流程。

一、下载 OpenCV 5.0 主库 + contrib 扩展模块

下载指令如下图所示:

# 创建编译工作目录
mkdir -p ~/opencv5_src && cd ~/opencv5_src

# 拉取源码
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

# 切换到 5.0.0 稳定版本
cd opencv
git checkout 5.0.0
cd ../opencv_contrib
git checkout 5.0.0

二、CMake 配置编译参数(两种方案按需选)

进入编译目录

cd ~/opencv5_src/opencv
mkdir build && cd build

方案 1:纯 CPU 编译

cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv5 \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_DOCS=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_CUDA=OFF \
-D WITH_CUDNN=OFF \
-D WITH_GTK=ON \
-D WITH_FFMPEG=ON \
-D WITH_TBB=ON \
-D WITH_OPENMP=ON ..

参数说明:

  • CMAKE_INSTALL_PREFIX=/usr/local/opencv5:独立安装路径,不和系统 OpenCV4 冲突。

  • OPENCV_EXTRA_MODULES_PATH:指定 contrib 模块路径

  • OPENCV_GENERATE_PKGCONFIG=ON:生成 pkg-config 配置,方便编译链接

方案 2:带 CUDA GPU 加速编译

cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv5 \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_DOCS=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D CUDA_GENERATION=Auto \
-D CUDA_ARCH_BIN="" \
-D WITH_GTK=ON \
-D WITH_FFMPEG=ON \
-D WITH_TBB=ON \
-D WITH_OPENMP=ON ..

三、编译 & 安装

# -j后填CPU核心数,nproc自动获取全部核心,加快编译
make -j$(nproc)

# 安装到设置的路径
sudo make install

# 更新系统动态链接库缓存
sudo ldconfig

编译耗时:4 核 CPU 约 30~60 分钟,多核越快。

四、C++ 项目测试 OpenCV5

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;

int main()
{
    cout << "OpenCV Version: " << CV_VERSION << endl;
    Mat img(400, 600, CV_8UC3, Scalar(0, 128, 255));
    imshow("OpenCV5 Test", img);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

CMakeLists.txt 工程编译

新建 CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(Opencv5Demo)
set(CMAKE_CXX_STANDARD 17)

# 指定OpenCV5路径
set(OpenCV_DIR /usr/local/opencv5/lib/cmake/opencv5)
find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(demo main.cpp)
target_link_libraries(demo ${OpenCV_LIBS})

编译运行:

mkdir build && cd build
cmake ..
make -j4
./demo

更多推荐