Ubuntu22.04,OpenCV 4.5.5 环境搭建

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 编译过程说明

  1. 依赖安装:只安装最必要的编译工具和图像库依赖
  2. 源码下载:从 GitHub 下载 OpenCV 4.5.5 源码
  3. CMake 配置 :关键配置说明:
    • BUILD_LIST=core,imgproc,imgcodecs:只编译核心模块
    • 关闭了所有非必要的模块(dnn、video、highgui 等)
    • WITH_QT=OFF:因为我们使用极简编译,Qt 支持可在需要时单独开启
  4. 编译安装:使用多核并行编译,安装到用户目录

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 中配置项目:

  1. 打开项目文件(.pro)
  2. 添加以下配置:
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 编译方案具有以下优点:

  1. 最小依赖:只编译核心模块,减少不必要的依赖冲突
  2. 用户目录安装:不污染系统环境,便于多版本管理
  3. 快速编译:关闭非必要模块,编译时间大幅缩短
  4. Qt 兼容:专为 Qt 6.9.3 开发环境优化

这种配置特别适合:

  • 嵌入式开发(资源受限环境)
  • 需要最小化部署的场景
  • 学习和测试 OpenCV 核心功能
  • Qt 应用程序的图像处理需求

后续可以根据实际需求,选择性开启其他模块(如 dnn、videoio 等)。


相关资源:

相关推荐
七仔啊2 小时前
windows server 2022 安装 Linux Docker
linux·windows·docker
AIgorithmGEEK2 小时前
Linux 进程控制完全指南:fork、wait、exec 三部曲
linux·运维·多进程·进程创建·进程等待·进程终止·exec家族
2301_777998342 小时前
网络基础(一):协议与网络传输基本流程
linux·网络
小张同学a.3 小时前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
Darkwanderor3 小时前
线程概念和Linux线程
linux·c语言·c++
酷可达拉斯3 小时前
自动化运维-从零开始编写ansible剧本(二)
linux·运维·服务器·centos·自动化
Darkwanderor3 小时前
Linux线程控制
linux·c语言·c++
Brilliantwxx4 小时前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
allforgood4 小时前
管理 SELinux 安全性
linux·运维·网络