Ubuntu22.04安装Opencv + opencv_contrib(v4.9.0)

需下载两个文件:

将上述文件上传到如下目录

bash 复制代码
root@f5b3d2a6bf04:/opencv# pwd
/opencv
root@f5b3d2a6bf04:/opencv# ll
total 149036
drwxrwxr-x 2 1000 1000     4096 Apr  8 10:07 ./
drwxr-xr-x 1 root root     4096 Apr  8 10:10 ../
-rw-r--r-- 1 1000 1000 92788647 Apr  8 10:07 opencv-4.9.0.tar.gz
-rw-r--r-- 1 1000 1000 59803362 Apr  8 10:09 opencv_contrib-4.9.0.tar.gz

安装步骤

  1. 解压文件
bash 复制代码
tar -zxvf opencv-4.9.0.tar.gz && tar -zxvf opencv_contrib-4.9.0.tar.gz
  1. 复制opencv_contrib到opencv目录下
bash 复制代码
cp -rf opencv_contrib-4.9.0 ./opencv-4.9.0
  1. 环境配置
bash 复制代码
apt-get update -y && apt-get upgrade -y && \
  apt-get install -y make cmake g++
  1. 编译
bash 复制代码
mkdir -p opencv-4.9.0/build && cd opencv-4.9.0/build && \
  cmake -D CMAKE_BUILD_TYPE=Release \
  	-D OPENCV_GENERATE_PKGCONFIG=ON \
  	-D CMAKE_INSTALL_PREFIX=/usr/local .. \
    -D OPENCV_EXTRA_MODULES_PATH=/opencv/opencv-4.9.0/opencv_contrib-4.9.0/modules ..

具体的参数含义:

  • -D CMAKE_BUILD_TYPE=Release:设置构建类型为Release模式。这意味着编译器将启用优化,并且不包含调试信息,生成的库或可执行文件更适合生产环境部署,运行速度更快但调试难度相对增大。

  • -D OPENCV_GENERATE_PKGCONFIG=ON:指示CMake生成pkg-config文件。pkg-config是一个帮助程序,它能够处理编译器和链接器所需的依赖关系,生成的.pc文件可以让其他项目更容易找到和链接到OpenCV库。

  • -D CMAKE_INSTALL_PREFIX=/usr/local:设置安装路径,编译完成后安装OpenCV库及相关文件至/usr/local目录下,这是Unix/Linux系统中常见的第三方软件安装位置。

  • -D OPENCV_EXTRA_MODULES_PATH=/opencv/opencv-4.9.0/opencv_contrib-4.9.0/modules:指定额外模块路径,OpenCV的额外模块(比如新增功能、扩展算法等)位于opencv_contrib仓库中,这个参数告诉CMake去哪里找这些模块并将其纳入构建,这样除了基本的OpenCV模块外,还能编译安装额外的功能模块。

最后的两个点...表示上一级目录,即回到OpenCV源代码根目录,以便CMake能够找到顶层CMakeLists.txt文件来配置整个项目。

  1. 安装
bash 复制代码
make -j 4 && make install
相关推荐
碧海银沙音频科技研究院12 分钟前
基于VMware虚拟机ubuntu开发博通BK7258方法
linux·运维·ubuntu
YuanDaima204810 小时前
WSL2 与 Ubuntu 22.04 基础环境部署指南
linux·运维·服务器·人工智能·ubuntu·docker
劉煥平CHN13 小时前
Ubuntu 22.04 上部署 Dify
linux·运维·ubuntu
努力的小帅14 小时前
使用 Tailscale 实现 Ubuntu 远程开发(VSCode Remote SSH + NoMachine)
linux·ide·vscode·ubuntu·编辑器·copilot
淮北49415 小时前
ubuntu22完全删除软件
ubuntu·apt·包管理·dpkg
烛衔溟1 天前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
Wireless_wifi62 天前
QCN9274-Based 2.4G/5G/6G Wireless Modules Tri-Band WiFi 7
人工智能·物联网·5g·ubuntu
㳺三才人子2 天前
初探 OpenCV 圖像處理
人工智能·python·opencv·计算机视觉
烛衔溟2 天前
TypeScript 接口实战 —— 处理复杂嵌套对象
linux·ubuntu·typescript
leo__5202 天前
基于 OpenCV + Qt 的水果智能识别分类系统
qt·opencv·分类