Ubuntu 下 opencv4.8.0 (包含拓展库) 的编译安装

本文详细介绍了在Ubuntu系统中下载OpenCV和opencv_contrib源码,安装依赖,配置cmake,编译,安装到/usr/local,并设置环境变量的过程。还包括了解决缺少依赖、配置pkg_config和创建opencv软链接的步骤。

首先展示一下我电脑的信息:

 zhaocake@zhaocake-BoDE-WXX9  ~  uname -a
Linux zhaocake-BoDE-WXX9 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

下载源码 

opencv-4.8.0.zip: https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0

opencv-contrib-4.8.0.zip: https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.8.0

 安装依赖和cmake工具等

sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-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 install libgtk-3-dev
sudo apt-get -y install libgstreamer-plugins-base1.0-dev
sudo apt-get -y install libgstreamer1.0-dev

 关于你缺少了什么依赖,可以通过阅读cmake时的输出来看,cmake的命令在后文。

解压,准备编译

将下载下来的源码解压,并将contrib源码文件夹移动到opencv文件夹中。

 在这个opencv-4.8.0文件夹下,进入准备编译的文件夹。

mkdir build && cd build

注意:如果你不想安装opencv的其他一些语言的接口,可以自行参考下面的命令。(也可以修改CMakeList.txt文件来达到目的)

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

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

这时会输出很多信息,生成make。

进行编译

sudo make -j8

sudo make 是单线程,使用-j可以指定线程数,加快速度。一般来说,可以把线程数取为cpu核心数的两倍。

需要等待一会。等待时间与线程数和cpu的性能有关。

安装到/usr/local

sudo make install

 然后可以看到库已经安装到了目标目录了。

配置导入路径

sudo gedit /etc/ld.so.conf

在打开的文件后面添加/usr/local/lib,然后用下面的命令加载更新后的配置。

sudo ldconfig

配置环境

修改rc文件。我是zsh的shell,所以是.zshrc。

对于大多数情况:

vim ~/.bashrc

在文件末尾添加

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

 使用命令查看opencv的安装情况。

pkg-config opencv --modversion

出现如下情况。 

 进行解决:

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

写入以下信息:

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
 
Name: opencv
Description: The opencv library
Version:4.8.0
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
~                                               

再次修改~/.bashrc,添加:

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

注意:不要忘了更新rc文件。

最后验证

在目录编译目录opencv/samples/cpp/example_cmake中。

运行下列命令检验: 

cmake .
make
./opencv_example

 在clion中:

 并不报错。但是这时不能够直接导入opencv2/opencv.hpp,我们还需要添加一个软链接。

sudo ln -s /usr/local/include/opencv4/opencv2 /usr/include

如果你处理不当导致了一些错误,那么可以另外参考一些文章来删除这个软链接并更具你自己的目录进行链接。

Linux怎么取消软链接_ln取消软连接_dufufd的博客-优快云博客

附:确定contrib安装成功

当然,你也可以写一段代码根据是否运行来确定是否安装成功。

 

<think> 我们正在处理一个关于在Ubuntu系统上编译安装OpenCV 4.8.0的请求,用户特别要求包含contrib模块以及使用git版本的选择。 根据引用[1]中的信息,我们有一些基本的步骤,比如创建build目录并运行cmake命令,但用户需要更详细的步骤,特别是关于contrib模块和git版本。 步骤概述: 1. 安装必要的依赖项 2. 获取OpenCVOpenCV contrib的源代码(使用git,并可以选择特定版本) 3. 创建构建目录并运行cmake来配置,包括contrib模块 4. 编译安装 注意:用户要求使用git版本,所以我们需要从git仓克隆,并且可以指定版本(例如4.8.0标签)。 引用[1]中提到了在opencv-4.8.0文件夹下新建build文件夹并执行cmake命令,但没有详细说明如何获取源代码以及如何包含contrib模块。 因此,我们需要补充这些部分。 另外,引用[3]中列出了一些依赖包,但我们不能直接使用,因为那是Python包列表,而我们需要系统依赖。不过,我们可以根据OpenCV编译要求列出Ubuntu下的依赖。 详细步骤: 1. 安装依赖项(以Ubuntu为例): ```bash sudo apt update sudo apt install -y build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev ``` 2. 获取源代码(使用git): 克隆OpenCVOpenCV contrib仓,并切换到4.8.0版本(标签): ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout tags/4.8.0 -b 4.8.0 cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout tags/4.8.0 -b 4.8.0 cd .. ``` 3. 创建构建目录并运行cmake: ```bash mkdir -p build && cd 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=../../opencv_contrib/modules \ -D BUILD_EXAMPLES=ON .. ``` 注意:`OPENCV_EXTRA_MODULES_PATH`指向我们克隆的opencv_contrib的modules目录。 4. 编译安装: ```bash make -j$(nproc) sudo make install ``` 5. 验证安装安装完成后,可以通过运行一个OpenCV程序或者检查版本号来验证。 注意:在cmake配置中,我们还可以根据需要启用或禁用其他选项。上述步骤是一个基本配置。 但是,用户提到要包含contrib模块,我们已经通过`OPENCV_EXTRA_MODULES_PATH`设置了contrib模块的路径。 另外,关于git版本,我们通过`git checkout tags/4.8.0`来指定了版本。 注意:编译过程可能需要较长时间,且需要确保有足够的交换空间(如果内存不足)。 引用[1]提供了在opencv-4.8.0下创建build文件夹的步骤,我们这里也遵循了同样的步骤。 我们还可以参考OpenCV官方文档,但根据用户要求,我们主要基于引用[1]并扩展。 因此,我们将这些步骤整理成清晰的回答。 注意:如果用户需要CUDA支持,则需要额外的配置,但用户没有提到,所以这里暂不包含。如果需要,可以添加-D WITH_CUDA=ON等选项。 最后,生成相关问题。 </think>以下是在Ubuntu系统上编译安装OpenCV 4.8.0的完整步骤,包含contrib模块和Git版本选择: ### 步骤 1:安装系统依赖 ```bash sudo apt update sudo apt install -y build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev ``` ### 步骤 2:获取源代码(Git版本) ```bash # 克隆主仓并切换到4.8.0版本 git clone https://github.com/opencv/opencv.git cd opencv git checkout tags/4.8.0 -b v4.8.0 # 克隆contrib仓并切换到相同版本 cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout tags/4.8.0 -b v4.8.0 ``` ### 步骤 3:配置编译环境 ```bash # 在opencv目录创建构建文件夹 cd ../opencv mkdir build && cd build # 关键配置:包含contrib模块 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_contrib/modules \ # 包含contrib模块 -D BUILD_EXAMPLES=ON .. ``` > **配置验证**:检查输出中应出现`OpenCV modules: ... opencv_contrib`确认contrib模块已包含[^1] ### 步骤 4编译安装 ```bash # 使用多核编译(根据CPU核心数调整) make -j$(nproc) # 安装到系统目录 sudo make install sudo ldconfig # 更新动态链接 ``` ### 步骤 5:验证安装 ```bash # 检查版本和contrib模块 pkg-config --modversion opencv4 # 应输出:4.8.0 # 验证Python绑定 python3 -c "import cv2; print(cv2.__version__)" # 应输出:4.8.0 ``` ### 注意事项 1. **Git版本控制**:通过`git checkout tags/4.8.0`确保获取特定版本 2. **CUDA支持**:如需GPU加速,添加`-D WITH_CUDA=ON`参数 3. **依赖问题**:若编译失败,检查CMake输出中缺失的依赖项 4. **磁盘空间**:完整编译需要约3-5GB磁盘空间 [^1]: 此配置参考了标准OpenCV编译流程中集成contrib模块的标准方法,通过OPENCV_EXTRA_MODULES_PATH参数链接外部模块仓
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

早上真好

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

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

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

打赏作者

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

抵扣说明:

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

余额充值