Opencv+Ubuntu编译安装

本文详细介绍了在Ubuntu系统中从源码编译安装OpenCV的过程,包括环境准备、依赖安装、源码下载及配置编译步骤,并解决了可能出现的一些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##Opencv+Ubuntu编译安装

缘由

Opencv作为一个十分强大的图像处理工具,它极大的方便了我们对图像进行处理,在机器视觉领域,opencv有着十分高的地位。
故,我们无可避免的需要借助Opencv来完成我们的开发,

###了解Opencv

####维基百科介绍

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。

####应用领域

OpenCV可用于解决如下领域的问题:

  • 增强现实
  • 人脸识别
  • 手势识别
  • 人机交互
  • 动作识别
  • 运动跟踪
  • 物体识别
  • 图像分区
  • 机器人

其他的不在这介绍了,我们此篇文章是基于Ubuntu平台的编译安装的。

准备安装环境

  • Ubuntu系统
  • 安装依赖
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
git clone https://github.com/opencv/opencv.git

准备编译

下载的源码文件夹为opencv,在opencv下新建build文件夹,准备存放编译生成的文件。

cd ~/opencv
mkdir build
cd build

前面应该都没有问题,接下来可能会出现一些问题

配置CMake
  • 配置opencv基本库,如果在其他平台或者有其他特殊功能可能配置有所不同
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

其中"…"为指定源码路径,即当前目录的上一级,另外可以加入许多参数,不加则为默认值,比如WITH_CUDA开关参数,默认为打开若要关闭,则需要加入 -D WITH_CUDA=OFF

cmake -D CMAKE_BUILD_TYPE=Release -D WITH_CUDA=OFF -D CMAKE_INSTALL_PREFIX=/usr/local .. 

WITH_CUDA关闭后编译的东西少一些应该会快一些,一般都不需要opencv支持cuda,可以关闭。
执行上面命令后,如果遇到

问题

一直停在这,网速哪里去了,IPPICV是一个三方库,没有集成到opencv里面,其实我们可以稍微修改代码,它就不会去下载了,或者一直等会报一个下载失败的警告,如下图

问题

或者改一下两个文件:
opencv/cmake/OpenCVFindIPP.cmake
opencv/cmake/OpenCVFindIPPIW.cmake

opencv/cmake/OpenCVFindIPP.cmake选中的一行加一个#注释了

问题

opencv/cmake/OpenCVFindIPPIW.cmake中选中的一行加一个#注释了

问题

编译安装

make -j4
sudo make install

####opencv_contrib模块

如果你要用到opencv的tracking模块,你需要安装opencv_contrib,
https://github.com/opencv/opencv_contrib
上面链接有安装方法。
#####Error:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PROTOBUF_LIBRARY (ADVANCED)
解决:

sudo apt-get install libprotobuf-dev protobuf-compiler

配置使用环境

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo gedit /etc/profile

在profile中最后面添加

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

简单测试

在linux系统的终端输入:

$ pkg-config --cflags opencv

-I /usr/local/opencv/include/opencv -I /usr/local/opencv/include

编译时需要的头文件

$pkg-config --libs opencv

/usr/local/opencv/lib/libopencv_calib3d.so /usr/local/opencv/lib/libopencv_core.so

编译时需要的链接库

    $ python
>>>  import cv2
>>>

如果不报错说明成功了。

###其中还有许多坑,当时没有记下来,以后遇到再加上

### 编译安装带有GStreamer支持的Python OpenCV 对于希望在Python环境中使用OpenCV并集成GStreamer的支持,可以遵循特定流程来完成编译安装过程。此过程中需要注意的是,在某些平台上如NVIDIA Jetson Orin设备上已经预装了OpenCV库,再次独立安装可能会引起冲突[^3]。 #### 准备工作 确保系统已准备好必要的构建工具和依赖关系。这通常涉及更新软件包列表、安装基本开发工具和其他必需组件。例如,在基于Debian/Ubuntu的操作系统中,可以通过以下命令获取所需的基础环境: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev \ gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav \ gstreamer1.0-apps gstreamer1.0-gtk3 gstreamer1.0-x gstreamer1.0-gl \ gstreamer1.0-alsa gstreamer1.0-pulseaudio libgstreamer1.0-dev \ libgstrtspserver-1.0-dev ``` 上述命令不仅包含了用于构建OpenCV本身的依赖项,还包括了一系列与GStreamer相关的插件和支持文件,这对于实现视频流处理等功能至关重要[^4]。 #### 下载源码 从GitHub仓库下载最新的OpenCV及其贡献模块(contrib modules),这些额外的功能扩展能够增强核心框架的能力范围。具体操作如下所示: ```bash cd ~/ git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git cd opencv mkdir build && cd build ``` #### 配置编译选项 利用`cmake`来进行项目配置前,建议先指定一些参数以便更好地适配目标平台特性。特别是当计划启用CUDA加速或其他高级特性的时候更应如此考虑。针对本案例而言,重点在于开启对GStreamer的支持: ```bash cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D WITH_GSTREAMER=ON .. ``` 这里通过设置`WITH_GSTREAMER`标志位为`ON`来激活GStreamer兼容模式;同时指定了Python绑定生成路径以及其他可能影响最终产出的因素。 #### 开始编译 一旦完成了所有前期准备工作之后就可以正式进入编译阶段了。考虑到现代多核处理器的优势,推荐采用并发作业方式加快速度: ```bash make -j$(nproc) ``` 该指令会依据当前CPU的核心数量自动调整最大线程数以达到最优性能表现。 #### 安装成果 待整个编译周期结束后即可实施安装动作,并刷新共享库缓存使得新版本生效: ```bash sudo make install sudo ldconfig ``` 此时应当验证是否正确集成了所期望的功能特性——即确认GStreamer已被成功纳入其中。为此可以在终端里运行一小段测试脚本来观察输出结果: ```python import cv2 as cv print(cv.getBuildInformation()) ``` 如果一切顺利的话,这段代码将会打印出详细的编译信息摘要,其中包括有关于GStreamer状态的部分描述,其值应该是肯定的回答(YES)。这意味着现在已经在本地机器上拥有了一个完整的带GStreamer支持的OpenCV-Python环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

blacklong28

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

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

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

打赏作者

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

抵扣说明:

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

余额充值