在 UOS(统信操作系统,基于 Debian/Ubuntu 体系)上编译 OpenCV 4.10.0

在 UOS(统信操作系统,基于 Debian/Ubuntu 体系)上编译 OpenCV 4.10.0,可按照以下步骤操作,确保依赖完整且编译过程顺利:

一、准备工作

  1. 更新系统包 首先确保系统包列表最新:

    bash

    复制代码
    sudo apt update && sudo apt upgrade -y

二、安装依赖项

OpenCV 编译需要多种依赖(基础库、图形库、视频库等),执行以下命令安装:

bash

复制代码
sudo apt install -y \
    build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev \
    libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev \
    libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev \
    libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm \
    libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libv4l-dev \
    libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools \
    libatlas-base-dev gfortran libhdf5-dev libprotobuf-dev libleveldb-dev \
    libsnappy-dev liblmdb-dev libgoogle-glog-dev libgflags-dev libprotobuf-dev \
    protobuf-compiler liblapacke-dev
  • 说明:
    • build-essentialcmake 是编译基础工具;
    • libgtk2.0-dev 用于 GUI 窗口支持;
    • libavcodeclibavformat 等是视频编解码依赖;
    • libjpeglibpng 等是图像格式支持;
    • libqt5* 可选,用于 Qt 界面支持(如需可视化工具)。

三、下载 OpenCV 4.10.0 源码

  1. 从官网或 GitHub 下载源码:

    bash

    复制代码
    # 创建工作目录
    mkdir -p ~/opencv_build && cd ~/opencv_build
    
    # 下载OpenCV源码(官网地址或GitHub)
    wget https://github.com/opencv/opencv/archive/4.10.0.tar.gz -O opencv-4.10.0.tar.gz
    wget https://github.com/opencv/opencv_contrib/archive/4.10.0.tar.gz -O opencv_contrib-4.10.0.tar.gz
    
    # 解压
    tar -zxvf opencv-4.10.0.tar.gz
    tar -zxvf opencv_contrib-4.10.0.tar.gz
    • 若需扩展模块(如 SIFT、特征匹配等),必须下载 opencv_contrib 并与主版本号一致(4.10.0)。

四、配置 CMake 编译选项

  1. 进入 OpenCV 源码目录,创建编译目录并配置:

    bash

    复制代码
    cd opencv-4.10.0
    mkdir build && cd build
  2. 执行 CMake 配置(根据需求调整选项):

    bash

    复制代码
    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D INSTALL_C_EXAMPLES=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D OPENCV_GENERATE_PKGCONFIG=ON \
          -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib-4.10.0/modules \
          -D BUILD_EXAMPLES=ON \
          -D WITH_QT=ON \
          -D WITH_OPENGL=ON \
          -D WITH_V4L=ON \
          -D WITH_FFMPEG=ON \
          -D WITH_GSTREAMER=ON 
          -D BUILD_opencv_world=ON \ 
          ..
    • 关键选项说明:
      • CMAKE_INSTALL_PREFIX:安装路径(默认/usr/local);
      • OPENCV_EXTRA_MODULES_PATH:指定opencv_contribmodules目录(若不编译扩展模块可省略);
      • OPENCV_GENERATE_PKGCONFIG=ON:生成pkg-config文件(方便后续开发);
      • WITH_QT=ON:启用 Qt 支持(如需可视化);
      • 其他选项按需开启(如WITH_CUDA用于 GPU 加速,需额外安装 CUDA)。
  3. 检查配置结果:配置完成后,确认输出中无关键依赖缺失(如FFMPEGGTK等显示YES),否则需补充安装对应依赖。

五、编译与安装

  1. 编译(根据 CPU 核心数调整-j参数,加速编译):

    bash

    复制代码
    make -j$(nproc)  # $(nproc)自动获取CPU核心数
    • 若编译过程中出现错误,通常是依赖缺失或opencv_contrib模块问题,可根据报错信息补充依赖,或暂时移除opencv_contrib重新配置。
  2. 安装编译好的库:

    bash

    复制代码
    sudo make install
  3. 更新动态链接库缓存:

    bash

    复制代码
    sudo ldconfig

六、验证安装

  1. 检查版本:

    bash

    复制代码
    pkg-config --modversion opencv4  # 若输出4.10.0则成功
  2. 运行示例程序(可选):编译目录下的bin文件夹中有示例程序,如:

    bash

    复制代码
    ./bin/opencv_version  # 输出版本信息

常见问题解决

  • 编译时提示 "缺少某个头文件" :根据文件名搜索对应的libxxx-dev包并安装(如fatal error: opencv2/xfeatures2d.hpp需确保opencv_contrib路径正确)。
  • opencv_contrib模块下载失败 :若 CMake 配置时提示某些模块(如xfeatures2d)的文件缺失,可手动下载缺失文件放入对应目录,或从国内镜像源获取opencv_contrib
  • Qt 相关错误 :若不需要 Qt,可在 CMake 中关闭-D WITH_QT=OFF

通过以上步骤,即可在 UOS 上成功编译并安装 OpenCV 4.10.0。

以下是将编译步骤整合为一个可执行的脚本文件(build_opencv_4.10.0.sh),方便在 UOS 上一键执行:

bash

复制代码
#!/bin/bash
set -e  # 遇到错误时退出脚本

# 定义版本和路径
OPENCV_VERSION="4.10.0"
WORK_DIR="$HOME/opencv_build"
OPENCV_DIR="$WORK_DIR/opencv-$OPENCV_VERSION"
CONTRIB_DIR="$WORK_DIR/opencv_contrib-$OPENCV_VERSION"

# 1. 更新系统并安装依赖
echo "=== 正在更新系统并安装依赖 ==="
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
    build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev \
    libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev \
    libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev \
    libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm \
    libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libv4l-dev \
    libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools \
    libatlas-base-dev gfortran libhdf5-dev libprotobuf-dev libleveldb-dev \
    libsnappy-dev liblmdb-dev libgoogle-glog-dev libgflags-dev libprotobuf-dev \
    protobuf-compiler liblapacke-dev

# 2. 创建工作目录并下载源码
echo "=== 正在下载OpenCV源码 ==="
mkdir -p "$WORK_DIR" && cd "$WORK_DIR"

# 下载主库和扩展模块
wget -c "https://github.com/opencv/opencv/archive/$OPENCV_VERSION.tar.gz" -O "opencv-$OPENCV_VERSION.tar.gz"
wget -c "https://github.com/opencv/opencv_contrib/archive/$OPENCV_VERSION.tar.gz" -O "opencv_contrib-$OPENCV_VERSION.tar.gz"

# 解压
tar -zxvf "opencv-$OPENCV_VERSION.tar.gz"
tar -zxvf "opencv_contrib-$OPENCV_VERSION.tar.gz"

# 3. 配置CMake
echo "=== 正在配置CMake ==="
mkdir -p "$OPENCV_DIR/build" && cd "$OPENCV_DIR/build"

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      -D OPENCV_EXTRA_MODULES_PATH="$CONTRIB_DIR/modules" \
      -D BUILD_EXAMPLES=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D WITH_V4L=ON \
      -D WITH_FFMPEG=ON \
      -D WITH_GSTREAMER=ON 
      -D BUILD_opencv_world=ON \  # 关键:启用opencv_world单库模式
      ..

# 4. 编译(使用全部CPU核心)
echo "=== 正在编译OpenCV ==="
make -j$(nproc)

# 5. 安装并更新动态链接库
echo "=== 正在安装OpenCV ==="
sudo make install
sudo ldconfig

# 6. 验证安装
echo "=== 验证安装结果 ==="
if pkg-config --modversion opencv4 &>/dev/null; then
    echo "OpenCV $OPENCV_VERSION 编译安装成功!"
    echo "版本信息:$(pkg-config --modversion opencv4)"
else
    echo "安装失败,请检查错误日志。"
    exit 1
fi

使用方法:

  1. 将上述内容保存为 build_opencv_4.10.0.sh

  2. 赋予执行权限: bash

    复制代码
    chmod +x build_opencv_4.10.0.sh
  3. 运行脚本: bash

    复制代码
    ./build_opencv_4.10.0.sh

说明:

  • 脚本会自动完成依赖安装、源码下载、配置、编译和安装全过程
  • 如需调整编译选项(如关闭 Qt 支持、不编译扩展模块等),可修改脚本中的cmake参数部分
  • 编译过程可能耗时较长(取决于 CPU 性能),请耐心等待
  • 若中途失败,脚本会自动退出并显示错误,可根据提示解决问题后重新运行
相关推荐
AI视觉网奇16 小时前
live2d 抠人脸
人工智能·opencv·计算机视觉
james bid17 小时前
MacBook Pro 2015 上 XUbuntu 24.04 启用 eGPU (GeForce GTX 1080 Ti) 和核显黑屏问题解决
linux·ubuntu·macos·cuda·egpu
龙吟游戏17 小时前
Ubuntu Server 25.10安装
linux·运维·ubuntu
zzxxlty17 小时前
windows 迁移ubuntu wsl从C盘到D盘
linux·运维·ubuntu
robator17 小时前
ubuntu 22.04 升级nvidia显卡驱动、cuda 和cudnn
linux·服务器·ubuntu
肖恭伟18 小时前
Pycharm历史community版本下载
linux·ubuntu·pycharm·下载·community
shandianchengzi18 小时前
【记录】ARM|Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战
linux·arm开发·ubuntu·arm·qemu
岁月蹉跎的一杯酒18 小时前
Clion opencv C++无法直接读取本地图像
c++·人工智能·opencv
劈星斩月19 小时前
OpenCV 学习7-图像标注
opencv·图像标注
AI视觉网奇19 小时前
roi生成 二值图
人工智能·opencv·计算机视觉