Linux (Ubuntu) C++ OpenCV 5.0 完整源码编译安装教程
·
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
更多推荐
所有评论(0)