Ubuntu 22.04 极简 OpenCV 4.5.5 环境搭建(Qt 6.9.3 兼容)
1. 环境概述
本文将详细介绍在 Ubuntu 22.04 系统上,为 Qt 6.9.3 开发环境搭建 OpenCV 4.5.5 的完整流程。我们采用极简编译方案,只包含核心模块,避免不必要的依赖,确保环境干净且高效。
目标环境:
- 操作系统:Ubuntu 22.04 LTS
- Qt 版本:6.9.3(或其他兼容版本)
- OpenCV 版本:4.5.5
- 安装位置:用户目录(
~/opencv-minimal),不污染系统环境
2. 准备工作
2.1 系统更新
首先确保系统包管理器是最新的:
bash
sudo apt update
sudo apt upgrade -y
2.2 安装 Qt 6.9.3(如果尚未安装)
如果你还没有安装 Qt 6.9.3,可以通过以下方式安装:
bash
# 安装 Qt 6 开发工具
sudo apt install -y qt6-base-dev qt6-tools-dev qt6-tools-dev-tools
或者通过 Qt 官方安装器安装特定版本。
3. 极简 OpenCV 4.5.5 编译脚本
以下是完整的编译脚本,保存为 build_opencv_minimal.sh:
bash
#!/bin/bash
set -e
# -------- 配置 --------
OPENCV_VERSION="4.5.5"
INSTALL_PREFIX="$HOME/opencv-minimal" # 安装到用户目录,不污染系统
NUM_JOBS=$(nproc)
# -------- 安装编译依赖(最精简) --------
sudo apt update
sudo apt install -y build-essential cmake wget unzip \
libjpeg-dev libpng-dev libwebp-dev libtiff-dev
# -------- 下载 OpenCV 源码 --------
mkdir -p ~/src
cd ~/src
if [ ! -f "opencv-${OPENCV_VERSION}.zip" ]; then
wget -O opencv-${OPENCV_VERSION}.zip \
https://github.com/opencv/opencv/archive/refs/tags/${OPENCV_VERSION}.zip
fi
unzip -q opencv-${OPENCV_VERSION}.zip
cd opencv-${OPENCV_VERSION}
# -------- 创建 build 目录 --------
rm -rf build && mkdir build && cd build
# -------- CMake:只编译 core/imgproc/imgcodecs,关闭所有垃圾依赖 --------
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-D BUILD_LIST=core,imgproc,imgcodecs \
-D BUILD_opencv_apps=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_opencv_dnn=OFF \
-D BUILD_opencv_photo=OFF \
-D BUILD_opencv_video=OFF \
-D BUILD_opencv_videoio=OFF \
-D BUILD_opencv_highgui=OFF \
-D WITH_TBB=OFF \
-D WITH_GDAL=OFF \
-D WITH_GDCM=OFF \
-D WITH_OPENJPEG=OFF \
-D WITH_FFMPEG=OFF \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_GTK=OFF \
-D WITH_V4L=OFF \
-D WITH_OPENCL=OFF \
-D WITH_CUDA=OFF \
-D WITH_EIGEN=OFF \
-D WITH_XINE=OFF \
-D WITH_LIBV4L=OFF \
..
# -------- 编译+安装 --------
make -j${NUM_JOBS}
make install
echo "============================================="
echo "极简 OpenCV 4.5.5 编译完成!"
echo "安装路径: ${INSTALL_PREFIX}"
echo "============================================="
4. 脚本执行步骤
4.1 赋予执行权限
bash
chmod +x build_opencv_minimal.sh
4.2 运行编译脚本
bash
./build_opencv_minimal.sh
4.3 编译过程说明
- 依赖安装:只安装最必要的编译工具和图像库依赖
- 源码下载:从 GitHub 下载 OpenCV 4.5.5 源码
- CMake 配置 :关键配置说明:
BUILD_LIST=core,imgproc,imgcodecs:只编译核心模块- 关闭了所有非必要的模块(dnn、video、highgui 等)
WITH_QT=OFF:因为我们使用极简编译,Qt 支持可在需要时单独开启
- 编译安装:使用多核并行编译,安装到用户目录
5. 环境验证
5.1 配置环境变量
将以下内容添加到 ~/.bashrc 或 ~/.zshrc:
bash
# OpenCV 4.5.5 环境变量
export OPENCV_DIR="$HOME/opencv-minimal"
export PKG_CONFIG_PATH="$OPENCV_DIR/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$OPENCV_DIR/lib:$LD_LIBRARY_PATH"
export CPLUS_INCLUDE_PATH="$OPENCV_DIR/include/opencv4:$CPLUS_INCLUDE_PATH"
使配置生效:
bash
source ~/.bashrc
5.2 验证安装
创建测试文件 test_opencv.cpp:
cpp
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <iostream>
int main() {
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
std::cout << "Build configuration:" << std::endl;
std::cout << cv::getBuildInformation() << std::endl;
return 0;
}
编译测试:
bash
g++ -std=c++11 test_opencv.cpp \
-I$OPENCV_DIR/include/opencv4 \
-L$OPENCV_DIR/lib \
-lopencv_core -lopencv_imgproc -lopencv_imgcodecs \
-o test_opencv
./test_opencv
6. Qt 6.9.3 项目集成
6.1 Qt Creator 配置
在 Qt Creator 中配置项目:
- 打开项目文件(.pro)
- 添加以下配置:
qmake
# OpenCV 配置
INCLUDEPATH += $$(OPENCV_DIR)/include/opencv4
LIBS += -L$$(OPENCV_DIR)/lib \
-lopencv_core \
-lopencv_imgproc \
-lopencv_imgcodecs
6.2 CMake 项目配置
如果是 CMake 项目,在 CMakeLists.txt 中添加:
cmake
# 设置 OpenCV 路径
set(OpenCV_DIR "$ENV{OPENCV_DIR}")
find_package(OpenCV REQUIRED COMPONENTS core imgproc imgcodecs)
# 链接到目标
target_include_directories(your_target PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(your_target ${OpenCV_LIBS})
7. 常见问题解决
7.1 编译错误:找不到依赖
如果遇到依赖问题,可以安装完整开发包:
bash
sudo apt install -y libgtk-3-dev pkg-config
7.2 Qt 与 OpenCV 版本兼容性
- OpenCV 4.5.5 与 Qt 6.9.3 完全兼容
- 如果需要 Qt 的 highgui 支持,在 CMake 中开启
WITH_QT=ON - 确保 Qt 开发包已安装:
sudo apt install qt6-base-dev
7.3 权限问题
如果安装到系统目录需要 sudo,但我们推荐用户目录安装:
bash
# 如果需要系统安装(不推荐)
sudo make install
8. 总结
本文提供的极简 OpenCV 4.5.5 编译方案具有以下优点:
- 最小依赖:只编译核心模块,减少不必要的依赖冲突
- 用户目录安装:不污染系统环境,便于多版本管理
- 快速编译:关闭非必要模块,编译时间大幅缩短
- Qt 兼容:专为 Qt 6.9.3 开发环境优化
这种配置特别适合:
- 嵌入式开发(资源受限环境)
- 需要最小化部署的场景
- 学习和测试 OpenCV 核心功能
- Qt 应用程序的图像处理需求
后续可以根据实际需求,选择性开启其他模块(如 dnn、videoio 等)。
相关资源: