当前位置: 首页 > news >正文

OpenCV安装(Ubuntu系统)

本文介绍以源码编译安装的方式,在Ubuntu 22.04上对OpenCV进行安装。

1.安装依赖工具与库

编译 OpenCV 需要以下依赖(以 Ubuntu 22.04 为例):

基础编译工具

sudo apt install -y build-essential cmake git pkg-config

图像/视频处理依赖

OpenCV 依赖多种图像格式(JPEG、PNG、TIFF)和视频编解码库:

sudo apt install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev  # 图像格式
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev  # 视频处理
sudo apt install -y libxvidcore-dev libx264-dev  # 视频编解码

GUI 支持

若需使用 OpenCV 的 GUI 功能(如 imshow 显示图像),需安装窗口系统依赖:

sudo apt install -y libgtk-3-dev  # GTK3 支持(推荐)
# 或 Qt 支持(如需更美观的界面):sudo apt install -y qt5-default libqt5gui5 libqt5core5a libqt5widgets5

数学优化库(可选)

安装线性代数库(如 OpenBLAS、Eigen)可加速 OpenCV 的矩阵运算:

sudo apt install -y libopenblas-dev libeigen3-dev

2.下载 OpenCV 源码

步骤 1:克隆 OpenCV 与 opencv_contrib 仓库

OpenCV 主仓库包含核心功能,opencv_contrib 包含额外模块(如 SIFT、人脸识别、深度估计等),建议一同下载:

# 创建工作目录
mkdir -p ~/develop/opencv_build && cd ~/develop/opencv_build# 克隆 OpenCV 主仓库(默认最新分支,如需指定版本,加 -b 标签,如 -b 4.9.0)
git clone https://github.com/opencv/opencv.git# 克隆 opencv_contrib 仓库(版本需与 opencv 一致)
git clone https://github.com/opencv/opencv_contrib.git

步骤 2:切换到指定版本(可选)

若需安装特定版本(如 4.9.0),进入仓库目录切换分支:

cd opencv && git checkout 4.9.0 && cd ..
cd opencv_contrib && git checkout 4.9.0 && cd ..

3.配置编译选项(CMake)

步骤 1:创建构建目录并进入

cd opencv && mkdir -p build && cd build

步骤 2:运行 CMake 配置编译选项

CMake 是 OpenCV 源码编译的核心工具,通过 -D 参数指定编译选项。以下是常用配置(根据需求调整):

cmake -D CMAKE_BUILD_TYPE=DEBUG \-D CMAKE_INSTALL_PREFIX=/usr/local/opencv_release \  # 安装路径-D INSTALL_CMAKE_CONFIG=ON \ # 安装 CMake 配置文件-D INSTALL_PYTHON_EXAMPLES=ON \       # 安装 Python 示例-D INSTALL_C_EXAMPLES=ON \            # 安装 C++ 示例-D OPENCV_EXTRA_MODULES_PATH=~/develop/opencv_build/opencv_contrib/modules \  # contrib 模块路径-D PYTHON_EXECUTABLE=$(which python3) \  # 指定 Python 解释器-D BUILD_EXAMPLES=ON \                # 编译示例-D WITH_QT=ON \                       # 启用 Qt 支持(GUI 界面)-D WITH_OPENGL=ON \                   # 启用 OpenGL 加速-D WITH_CUDA=OFF \                    # 禁用 CUDA(如需 GPU 加速设为 ON,需提前安装 CUDA)..  # 指向 opencv 源码根目录(当前在 build 目录,故用 ..)

关键选项说明:

  • CMAKE_BUILD_TYPERELEASE(优化编译,默认)或 DEBUG(调试模式)。
  • INSTALL_CMAKE_CONFIG: 安装 CMake 配置文件, 让 CMake 项目可以像现代库一样自动 find_package(OpenCV)
  • OPENCV_EXTRA_MODULES_PATH:指定 opencv_contrib/modules 路径,启用额外功能。
  • WITH_CUDA:若需 GPU 加速(如深度学习模型推理),设为 ON,需提前安装 CUDA Toolkit。
  • WITH_QT/WITH_GTK:选择 GUI 后端(Qt 功能更丰富,需提前安装 qt5-default 等依赖)。

步骤 3:检查 CMake 输出

配置完成后,CMake 会输出支持的模块、依赖库等信息。确保关键依赖(如 Python、JPEG、FFmpeg)显示为 YES,否则需检查对应库是否已安装。

4.编译与安装

步骤 1:编译源码

使用 make 命令编译,-jN 选项指定并行编译线程数(N 建议设为 CPU 核心数,加速编译):

make -j$(nproc)  # $(nproc) 自动获取 CPU 核心数

编译过程耗时较长(5-30 分钟,取决于硬件性能)。

步骤 2:安装到系统#

编译完成后,执行 make install 将 OpenCV 安装到 /usr/local/opencv_debug(自定义路径):

sudo make install

5.验证是否成功

编写CMakeLists.txt文件

cmake_minimum_required(VERSION 3.10)
project(hello_opencv)set(OpenCV_DIR "/usr/local/opencv_release/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)add_executable(hello_opencv main.cpp)
target_link_libraries(hello_opencv ${OpenCV_LIBS})

编写main.cpp文件

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>int main() {cv::Mat mat(400, 600, CV_8UC3 , cv::Scalar(0, 255, 255));cv::imshow("Mat", mat);cv::waitKey(0);return 0;
}

运行程序:

截图 2026-03-04 15-52-32

6.参考资料

在 Linux 系统上安装 OpenCV:详细指南

http://www.jsqmd.com/news/435798/

相关文章:

  • 2026年隧道代理深度测评:匿名性、速度、稳定性全维度解析
  • 作为老板:你的“既要又要”,一个平台全搞定 - 搭贝
  • 2026自动售卖机厂家TOP6口碑推荐|精细化运营标杆,多场景无人售货机、自动贩卖机、自动售卖机厂家推荐 - 品牌智鉴榜
  • 2026 GEO 服务商优选指南:抓词 GEO 领衔,垂直领域标杆各展所长 - 资讯焦点
  • 高弹海绵模切自粘胶条,靠谱的厂商有哪些,口碑如何? - 工业品网
  • 2026年养生领域实力推荐:天津旭峰生物科技发展有限公司,御本万宗全系产品助力健康 - 品牌推荐官
  • 西安水泵选秦泵|本地标杆厂家,现货充足+全品类适配,供水设备一站式采购 - 朴素的承诺
  • 性价比高的口碑不错的橡胶止水带厂家怎么找 - 工业推荐榜
  • 2026年拆包机械厂家推荐:潍坊一卓重工科技,固废/面粉/尿素/废钢等自动拆包机全系供应 - 品牌推荐官
  • 2026矿用监测系统厂家推荐:山东诚德电子科技,动态/无线顶板/水文/压力监测系统全覆盖 - 品牌推荐官
  • ​考研辅导机构排名出炉,社科赛斯成考生首选 - 资讯焦点
  • 2026年降AI率工具推荐:亲测比话AI等5款效果最好的工具 - 还在做实验的师兄
  • 衡水信誉好的短视频运营品牌企业有哪些,价格贵吗? - mypinpai
  • 老板必看:项目管理的“既要又要”,一个搭贝就够了 - 搭贝
  • 权重是什么?——想象成音量旋钮
  • 避坑指南|西安水泵厂家哪家强?秦泵机电,现货速发+资质齐全,供水设备全适配 - 朴素的承诺
  • 2026年快闪店/商场特装/美陈道具定制推荐:河南红萝卜文化传媒一体化服务 - 品牌推荐官
  • 2026年衡水靠谱的AI搜索推广公司盘点,一站式服务哪家强 - 工业设备
  • Go 语言系统编程与云原生开发实战(第28篇)
  • 讲讲外籍工作许可手续合规延期办理,上海美西咨询的服务值得推荐吗? - 工业推荐榜
  • WebRTC 入门指南:实时通信完全解析
  • 2026年档案密集架厂家推荐:河北盛美智能集团,智能/电动/档案室密集架全系解决方案 - 品牌推荐官
  • 台州食品厂洁净车间2026年排名,这些企业树立新典范,净化车间/净化工程/洁净车间/净化工程公司,洁净车间施工企业有哪些 - 品牌推荐师
  • 2026年探讨九宫格茶叶包装,色彩搭配协调密封性好怎么选择 - mypinpai
  • 使用TaskCompletionSource实现异步状态协调:以设备升级流程为例
  • 虚拟化技术的先驱:VMware 的演进与影响
  • 2026年智能点胶机厂家推荐排行榜:全自动视觉定位点胶设备,覆盖纽扣、拉链头、商标、五金徽章等饰品配件高效精准点胶解决方案 - 品牌企业推荐师(官方)
  • 本文将来尝试对 ASP.NET Core 进行 AOT 发布为类库,通过类库调用方式在 WPF 里引用 ASP.NET Cor... ...
  • 2026年杭州靠谱的九宫格茶叶包装排名,运输方便研发强满意度高 - 工业设备
  • 2026年山东防渗土工膜/土工布/防水板/排水网/防水毯生产商综合实力TOP5盘点 - 2026年企业推荐榜