Ubuntu22.04环境下源码安装OpenCV 4.8.1(包含opencv_contrib-4.8.1)

因为项目需要用OpenCV对yolov8模型进行推理,通过DNN模块,之前本地的OpenCV版本是4.5.4(好像安装完ROS2 humble之后系统就自带了opencv),加载onnx模型一直报错,网上查询到需要4.7以上,干脆直接升级到4.8.1了。

1.源码下载

opencv:https://github.com/opencv/opencv

  • 选择4.8.1的源码包进行下载
    在这里插入图片描述

opencv_contrib:https://github.com/opencv/opencv_contrib

  • 同样选择4.8.1的源码包进行下载
    在这里插入图片描述
  • 下载好后选择通过图形界面或者unzip命令进行解压。并将contrib源码文件夹移动到opencv文件夹中
    在这里插入图片描述

2.环境准备

  • 安装依赖和cmake工具
    打开终端,输入如下代码进行安装依赖和cmake工具安装:
sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libgtk-3-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

在这里插入图片描述

3.源码编译

  • 在之前解压的opencv-4.8.1文件夹下建立一个build文件夹,并进入该文件夹
mkdir build && cd build

PS:如果你不想安装opencv的其他一些语言的接口,可以自行参考下面的命令

指定编译类型,并将编译后的库安装到/usr/local/

sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.8.1/modules -D BUILD_JAVA=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF CMAKE_INSTALL_PREFIX=/usr/local ..

耐心等待,会下载一些其他库、、、
在这里插入图片描述
在这里插入图片描述

  • 编译
sudo make -j4

在这里插入图片描述
在这里插入图片描述

  • 安装到/usr/local
sudo make install

在这里插入图片描述

4.环境配置

  • 配置导入路径
sudo gedit /etc/ld.so.conf

在打开的文件后面添加/usr/local/lib,然后用下面的命令加载更新后的配置。
在这里插入图片描述

sudo ldconfig 
  • 输入以下命令检查安装版本
pkg-config opencv --modversion

如果出现如下错误:
在这里插入图片描述

解决:

 cd /usr/local/lib
 sudo mkdir pkgconfig # 如果已经存在则不需要再创建
 cd pkgconfig
 sudo gedit opencv.pc

在打开的文本写入如下信息,保存,然后退出

prefix=/usr/local

exec_prefix=${prefix}

includedir=${prefix}/include

libdir=${exec_prefix}/lib


Name: opencv

Description: The opencv library

Version:4.8.1

Cflags: -I${includedir}/openCV4

Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core

~
  • 修改rc文件
gedit ~/.bashrc

在文件末尾添加两行:

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

关闭保存后,使用以下命令更新以下配置

source /.bashrc

输入以下命令检查安装版本

pkg-config opencv --modversion

在这里插入图片描述

5.测试验证

打开终端,进入原先opencv源码目录下,并输入以下命令对例程进行编译

cmake .
make
./opencv_example

得到以下画面

在这里插入图片描述
在这里插入图片描述

6.CMake中指定OpenCV版本

  • CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(OpenCVProject)

# 指定OpenCV版本的路径
set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
message(STATUS "***OpenCV version: ${OpenCV_VERSION}")

add_executable(MyOpenCVApp src/main.cpp)

target_link_libraries(MyOpenCVApp ${OpenCV_LIBS})
  • main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    std::cout << "OpenCV version: " << CV_VERSION << std::endl;
    return 0;
}

参考:https://www.bilibili.com/read/cv30840280/

<think>好的,我需要帮用户解决在Ubuntu 22.04上彻底删除旧版OpenCV安装4.8版本的问题。首先,得了解用户可能已经通过不同方式安装OpenCV,比如apt安装或者源码编译,所以需要彻底清除残留。 用户提到的参考引用里有几个教程,比如引用[1]和[2]提到了编译安装4.8.0,引用[3]提到4.8.1源码,引用[4]展示了安装后的测试代码。这些信息需要整合到回答中。 首先,卸载现有的OpenCV。用户可能用apt安装过,所以需要用sudo apt purge命令删除相关包。但源码安装的可能不会在apt里,所以需要手动删除相关文件,比如/usr/local下的include、lib、share等目录中的opencv文件。还可能存在Python的site-packages中的cv2模块,需要检查并删除。 然后,安装依赖项。根据OpenCV的编译要求,需要安装编译器、CMake、依赖库等。引用[1]和[2]提到的依赖安装步骤需要包含进去,比如libgtk2.0-dev、pkg-config等。 接下来是下载源码。用户需要指定版本4.8,所以从GitHub的release页面下载4.8.0或4.8.1源码包。引用[3]提到下载4.8.1,但用户明确要4.8,所以需要确认版本。这里可能需要提醒用户4.8.0和4.8.1的区别,但用户指定4.8的话,可能4.8.0更合适,或者说明两者都可以。 编译安装部分,需要创建build目录,运行cmake配置,指定contrib模块(如果用户需要的话),然后make和make install。这里要注意cmake的参数,比如-DOPENCV_EXTRA_MODULES_PATH指向contrib模块的路径,像引用[1]中的步骤。同时,检查是否安装到正确的位置,比如/usr/local。 环境配置部分,可能需要更新动态链接库,使用sudo ldconfig,或者在.bashrc中添加路径。引用[4]中的测试代码可以用来验证安装是否成功,编译并运行示例程序,输出OpenCV版本。 验证安装时,用户需要运行一个简单的程序,包含头文件并打印版本号,确保新安装的版本被正确识别。如果之前残留文件没删干净,可能导致版本显示不正确,所以强调彻底删除的重要性。 最后,生成相关问题,比如如何配置环境变量,安装不同版本,验证是否成功,或者处理常见错误。这些需要根据用户可能遇到的后续问题来设计。 需要确保步骤清晰,避免遗漏关键点,比如删除所有残留文件,正确配置编译选项,以及验证步骤。同时,引用用户提供的参考资料,比如引用[1]、[2]、[3]、[4]中的内容,在适当的位置添加引用标识。 可能遇到的挑战是用户之前安装的多个版本导致冲突,所以强调彻底删除的重要性,包括手动删除文件和清理Python环境中的模块。此外,编译过程中可能缺少依赖项,需要列出所有必要的依赖,确保用户能顺利完成编译。 总的来说,步骤应该是:卸载现有版本→安装依赖→下载源码→编译安装→配置环境→验证。每个步骤详细说明,并引用相关参考资料,确保用户能一步步操作,避免出现问题。</think>### 分步指南:Ubuntu 22.04 卸载旧版OpenCV安装4.8版本 #### 一、彻底卸载旧版OpenCV 1. **卸载apt安装的版本** 执行以下命令清理APT安装OpenCV包: ```bash sudo apt purge libopencv* opencv* sudo apt autoremove ``` 2. **手动删除源码编译的残留文件** 若曾通过源码编译安装,需手动删除以下目录中的OpenCV相关文件: ```bash sudo rm -rf /usr/local/include/opencv* # 头文件 sudo rm -rf /usr/local/lib/libopencv* # 动态库 sudo rm -rf /usr/local/share/opencv* # 配置文件 sudo rm -rf /usr/local/bin/opencv_* # 可执行工具 ``` 3. **清理Python虚拟环境中的残留** 检查Python的`site-packages`目录,删除`cv2`相关模块: ```bash sudo find / -name "*cv2*" -exec rm -rf {} \; 2>/dev/null ``` --- #### 二、安装OpenCV 4.8依赖项 安装编译所需的基础工具和依赖库[^1][^2]: ```bash sudo apt update sudo apt install -y build-essential cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev sudo apt install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libopenexr-dev ``` --- #### 三、下载OpenCV 4.8源码 1. **从GitHub下载源码包** 选择4.8.0或4.8.1版本(二者均为4.8系列): ```bash wget https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip -O opencv-4.8.0.zip wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip -O opencv_contrib-4.8.0.zip unzip opencv-4.8.0.zip && unzip opencv_contrib-4.8.0.zip ``` --- #### 四、编译与安装OpenCV 4.8 1. **配置CMake参数** 进入源码目录并创建`build`文件夹: ```bash cd opencv-4.8.0 mkdir build && cd build ``` 执行CMake配置(若需contrib模块,添加`-DOPENCV_EXTRA_MODULES_PATH`参数): ```bash cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.8.0/modules \ -D WITH_CUDA=OFF .. ``` 2. **编译并安装** 使用多线程加速编译: ```bash make -j$(nproc) sudo make install ``` 3. **更新动态链接库** 刷新系统库缓存: ```bash sudo ldconfig ``` --- #### 五、验证安装结果 1. **检查版本号** 编写测试程序`test_opencv.cpp`[^4]: ```cpp #include <iostream> #include <opencv2/opencv.hpp> int main() { std::cout << "OpenCV Version: " << CV_VERSION << std::endl; return 0; } ``` 编译并运行: ```bash g++ test_opencv.cpp -o test_opencv $(pkg-config --cflags --libs opencv4) ./test_opencv ``` 若输出`OpenCV Version: 4.8.0`则安装成功。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boss-dog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值