ubuntu22.04安装opencv4和opencv_contrib

一、下载opencv和opencv_contrib

1、下载opencv

Releases - OpenCV选择OpenCV-4.5.0,下载Sources版本,并解压;

2、下载opencv_contrib

https://github.com/opencv/opencv_contrib选择右边Release-Tags,选择和opencv一样的版本;

解压到opencv主文件夹中并重命名为opencv_contrib;

二、安装依赖库

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev 
sudo apt-get install libtiff-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

三、开始编译

1、opencv主目录下打开终端:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules .. \
    -DWITH_CUDA=1 \
    -DCUDA_ARCH_BIN=6.1 \
    -DENABLE_FAST_MATH=1 \
    -DCUDA_FAST_MATH=1 \
    -DWITH_CUBLAS=1 \
    -DOPENCV_GENERATE_PKGCONFIG=1 \
    ..

注意:上面的DCUDA_ARCH_BIN指定GPU算力,在NVIDIA官网查询 CUDA GPUs - Compute Capability | NVIDIA Developer,常用的30系显卡是8.6,40系显卡是8.9

2、编译安装

查一下自己电脑最多支持多少线程:

nproc

我的电脑输出是4,所以就:

make -j4
sudo make install

四、环境配置

添加路径

sudo vim /etc/ld.so.conf.d/opencv.conf

然后在打开的文件中添加如下内容:

/usr/local/lib

保存退出,之后再终端输入: 

sudo ldconfig

使其保存并生效,再在终端输入:

sudo vim /etc/bash.bashrc

打开文件后在末尾输入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存退出,终端输入:

source /etc/bash.bashrc

五、测试

pkg-config opencv –modversion
opencv_version

不报错,且输出版本号,安装成功;

进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:

cmake .
make
./opencv_example

 正常来说,应该有摄像头窗口界面;如果没有摄像头,出现“Hello OpenCV“也测试成功

六、出现的问题及解决措施

1、fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录

原因:缺少文件,在构建的时候没有下载;

解决方式:

(1)下载文件,解压到opencv_contrib/modules/xfeatures2d/src/下:

压缩包地址:链接:百度网盘 请输入提取码   提取码:p50x

(2)将opencv-4.5.0/modules中的features2d文件夹一整个复制到opencv_contrib/modules/xfeatures2d/test中

2、error: ‘sleep_for’ is not a member of ‘std::this_thread’

打开opencv-4.5.0/modules/gapi/test/gapi_async_test.cpp,添加:

#include <thread>

3、fatal error: common.h: 没有那个文件或目录

发现opencv_contrib-4.4.0/modules/xfeatures2d/test/下的features2d文件夹是在第一次编译中报错少了一个hpp文件才加进去的,把opencv_contrib-4.4.0/modules/xfeatures2d/test/features2d/下test文件夹以外的所有东西都删掉就好了,另外,test文件夹下的test_main.cpp也要删掉,否则会报错有两个main函数
                     

3、切记一定要先安装opencv再安装Anaconda,否则即使安装成功也无法调用,会报很多错误;如果提前安装了anaconda, 建议先把anaconda环境变量注释掉,并把anaconda文件夹移进回收站等装完再移出来(改软连接也行,但上述更无脑些)

参考:

ubuntu22.04编译安装opencv和opencv_contrib_zznlzz的博客-优快云博客

### 安装前准备 为了确保顺利安装 OpenCV 4.8.0,在开始之前需要先更新系统的软件源并安装必要的依赖项。通过终端执行以下命令可以完成这些操作: ```bash sudo apt-get update sudo apt-get upgrade ``` 接着,安装一些基础开发工具库文件,这一步骤对于后续编译至关重要[^3]。 ### 下载 OpenCV contrib 模块 获取官方发布的 OpenCV 及其额外模块 (contrib),可以通过 `wget` 命令直接从 GitHub 获取压缩包: ```bash wget -O opencv-4.8.0.zip https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip wget -O opencv-contrib-4.8.0.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip ``` 解压下载好的两个 ZIP 文件到指定目录以便于之后的操作: ```bash unzip opencv-4.8.0.zip -d ~/opencv-4.8.0/ unzip opencv-contrib-4.8.0.zip -d ~/opencv_contrib-4.8.0/ ``` ### 编译与安装 进入解压后的 OpenCV 主目录创建一个新的构建文件夹用于存放编译过程中产生的临时文件,并切换至该路径下继续操作: ```bash cd ~/opencv-4.8.0/opencv-4.8.0/ mkdir build && cd build ``` 配置 CMake 参数以启用 Python 绑定以及其他特性支持,同时指明 contrib 的位置: ```bash cmake \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.8.0/opencv_contrib-4.8.0/modules .. ``` 启动实际的编译流程,这里建议根据 CPU 核心数调整 `-jN` 参数中的 N 来加速整个过程(例如双核处理器可设为-j2),完成后即刻进行全局安装: ```bash make -j$(nproc) sudo make install ``` 最后重启计算机使更改生效,这样就完成了 OpenCV 4.8.0 在 Ubuntu 22.04 上的手动编译安装工作[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值