ubuntu 下 opencv的安装以及配置(亲测有效)

2023-11-04

当在Ubuntu上安装OpenCV时,可以按照以下详细步骤进行操作:

1. 更新apt包列表:

sudo apt update

这将更新系统的包列表,确保可以获取到最新的软件包信息。

2. 安装所需依赖项:

sudo apt install build-essential cmake git pkg-config
sudo apt install libjpeg-dev libtiff5-dev libpng-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libgtk-3-dev
sudo apt install libatlas-base-dev gfortran
sudo apt install libopencv-dev
sudo apt install -y cmake-qt-gui

这些命令将安装构建OpenCV所需的各种依赖项,包括编译工具、图像处理库、视频处理库、GUI库等。

3. 克隆OpenCV源码库或者下载源码:

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout <version>

使用git clone命令克隆OpenCV的源码库,并使用cd命令切换到克隆的目录中。如果需要特定的版本,请使用git checkout命令切换到相应的标签或分支。

源码下载:
opencv下载

4. cd 到opecv目录,创建一个用于构建的目录:

$ mkdir build
$ cd build

在OpenCV的源码目录下创建一个用于构建的目录,并切换到该目录。

5. 配置CMake:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4 ..

使用cmake命令配置构建过程:

  • CMAKE_BUILD_TYPE=Release 这里设置了构建类型为Release
  • -D CMAKE_INSTALL_PREFIX=/usr/local 生成的文件将安装到/usr/local/opencv3.4 目录下。
  • ..表示在当前目录的父目录中寻找CMakeLists.txt文件。

6. 编译OpenCV:

sudo make -j8

使用make命令进行编译,-j8参数表示使用8个线程进行编译,可以根据系统性能进行调整。

7. 安装OpenCV:

$ sudo make install

使用make install命令将编译生成的文件安装到系统中。

8. 环境配置:

1、添加库路径

打开文件进行编辑:

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

输入下面的内容,然后保存并退出

// opencv 的lib目录
/usr/local/opencv3.4/lib   

sudo ldconfig -v

2、添加环境变量

打开文件进行编辑:

sudo vi /etc/profile

在末尾加入:

export PKG_CONFIG_PATH=/usr/local/opencv3.4/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3.4/lib

3、更新环境变量

source /etc/profile

9. 验证安装:

pkg-config --modversion opencv4
# 或者
pkg-config --modversion opencv

使用pkg-config命令验证OpenCV是否正确安装,并显示OpenCV的版本号。

以上就是在Ubuntu上安装OpenCV的详细步骤。请根据实际情况进行操作,并参考OpenCV官方文档或其他可靠资源获取更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 下 opencv的安装以及配置(亲测有效) 的相关文章

  • 我可以在 Ubuntu 上使用 Homebrew 吗?

    我只是尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包 但都失败了 这就是我尝试安装它们的方法 sudo apt get install build essential curl git m4 r
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 如何使用 PHP 更改文件的标题属性

    用户使用我的 PHP 应用程序上传 PDF 文件 我将它们存储在 S3 上 稍后 其他用户会查看这些文件 我会在他们的浏览器中 内联 显示这些文件 问题在于 PDF 的 标题 属性显示在通常显示网站标题的浏览器选项卡中 由于它是由原始上传的
  • 从基本矩阵中查找单应矩阵

    我正在尝试计算单应性矩阵H给定一组对应关系和基本矩阵F 根据对极几何原理 我知道这可以通过对极线和对极线的叉积来完成F from 极点几何 http www cs unc edu marc tutorial node44 html e ij
  • OpenCV 中的 Canny 可以同时处理灰度图像和彩色图像吗?

    我有一些关于Canny 边缘检测器 in OpenCV 这是我尝试过的代码 def auto canny image sigma 0 33 v np median image lower int max 0 1 0 sigma v uppe
  • opencv不失真图像有一个奇怪的圆圈

    我尝试使用 opencv 针孔模型来计算校准参数 然后使图像不失真 问题是 未失真的图像中有一个奇怪的圆圈 如下所示 代码 原始图像和结果图像是here https github com wennycooper A004 pinhole 任
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 使用 OpenCV 从轮廓获取掩模

    我想从我通过 cv findContours 计算的轮廓 它只存在 1 个轮廓 获取图像掩模 然而 虽然我的轮廓变量不为空 但我无法使用 cv drawContours 检索图像蒙版 我的目标图像始终为空 这是我的代码 img mosaic
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • 使用 OpenCV 描述符与 findFundamentalMat 匹配

    我之前发布了有关同一程序的问题 但没有收到答案 我已经纠正了当时遇到的问题 但又面临新的问题 基本上 我使用未校准的方法自动校正立体图像对的旋转和平移 我使用 SURF 等特征检测算法来查找两个图像 左右立体图像对 中的点 然后再次使用 S
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • 如何从外部模块导出符号?

    我在内核源代码树之外进行编码 有两个模块 第一个printt有一个功能printtty 将字符串打印到当前 tty 以及第二个模块hello这会调用printtty 在初始化期间 我已经添加了EXPORT SYMBOL printtty 在
  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op
  • bash "&" 不打印 "[1]+ Done "

    我在 bashrc 中调用一个脚本来打印打开终端时收到的新消息数 我希望该调用在访问网络时是非阻塞的 有时需要几秒钟 这意味着我无法使用终端直到完成 但是如果我输入 mailcheck 在我的 bashrc 中 它工作正常 但然后打印一个空
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当

随机推荐

  • ISCC 2019 杂项 他们能在一起吗?(小明在网上向暗恋已久的女生表白了,对方只给小明发来了一个二维码作为回复,面对小明的求助,你会告诉他这名女生想表达的意思吗?)

    先打开下载吧 哈啊哈哈哈 点附件下载直接是这个二维码 让我们用手机扫描一下 得到一串字符串 如下 UEFTUyU3QjBLX0lfTDBWM19ZMHUlMjElN0Q 之后根据 我之前文章里的 格式 这个应该是个 base64加密过的 b
  • Linux网络编程之本地套接字

    Linux网络编程之本地套接字 一 本地套接字 二 对比本地套和网络套 三 本地套接字代码实现 一 本地套接字 二 对比本地套和网络套 三 本地套接字代码实现 接口C文件 include
  • 公钥和私钥

    概念 公钥 Public Key 与私钥 Private Key 是通过一种算法得到的一个密钥对 即一个公钥和一个私钥 公钥是密钥对中公开的部分 私钥则是非公开的部分 公钥通常用于加密会话密钥 验证数字签名 或加密可以用相应的私钥解密的数据
  • 利用Nginx配置文件转发

    编辑nginx conf内容 cd usr local nginx conf vi nginx conf 内容如下所示 error log logs error log error pid logs nginx pid user root
  • Docker-wordpress

    root 2c4g3m cd usr local src root 2c4g3m src curl fsSL https get docker com bash s docker mirror Aliyun root 2c4g3m src
  • linux实验文件管理,操作系统实验七Linux下的文件管理.pdf

    操作系统实验七Linux下的文件管理 操作系统实验七 Linux下的文件管理 一 实验目的 1 熟悉Linux 下常用的操作指令 2 加深对文件 目录 文件系统等概念的理解 3 掌握Linux 文件系统的目录结构 4 掌握有关Linux 文
  • PyTorch 提取中间层特征?

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 来源 机器学习算法与自然语言处理 编辑 忆臻 https www zhihu com question 68384370 本文仅作为学术分享 如果侵权 会删文处理 PyT
  • TCP/IP详解学习笔记

    TCP IP详解学习笔记 http blog csdn net goodboy1881 category 204448 aspx PageNumber 2 TCP IP详解学习笔记 3 IP协议 ARP协议 RARP协议 摘要 TCP IP
  • C#在linux上运行实现

    1 C 开发完了服务 2 部署到linux centos7上 3无法直接运行 解决方法 1 linux cenos7上安装mono 2 执行mono xxx exe 即可 解决方法2 下载 anyexec 1 2 linux x64 tar
  • C语言 leetcode刷题篇 删除有序数组中的重复项

    给你一个 升序排列 的数组 nums 请你 原地 删除重复出现的元素 使每个元素 只出现一次 返回删除后数组的新长度 元素的 相对顺序 应该保持 一致 由于在某些语言中不能改变数组的长度 所以必须将结果放在数组nums的第一部分 更规范地说
  • 跨域 访问总结

    文章转载自https segmentfault com a 1190000011145364 什么是跨域 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源 这里跨域是广义的 广义的跨域 1 资源跳转 A链接 重定向 表单提交 2 资源
  • Mybatis从头到尾(一)--MyBatis简介及项目搭建

    一 简介 MyBatis的前身是iBATIS 是ClintonBegin在2001年发起的一个开源项目 最初侧重于密码软件的开发 后来发展成为一款基于Java的持久层框架 2004年 Clinton将iBATIS的名字和源码捐赠给了Apac
  • labelme 5.0.1版本指南(二)labelme快捷键详解与修改

    如何自定义labelme的快捷键 非常简单也很实用 吐槽一下Ctrl J创建 Ctrl N编辑 对我的键盘很不友好 路径文件名是这个是这个 home mac labelmerc 打开以后可以看到各种快捷键 shortcuts close C
  • 深度学习06-pytorch从入门到精通

    文章目录 概述 环境准备 安装cuda和cudnn 安装pytorch 基础 张量 定义 numpy转换 数学函数 随机数 计算函数 矩阵处理函数 自动梯度 案例 计算图 torchvision模块 Transforms DataSet D
  • 鲜为人知的编程真相(转载)

    当程序员的经历让我知道了一些关于软件编程的事情 下面的这些事情可能会让朋友们对软件开发感到惊讶 一个程序员用在写程序上的时间大概占他的工作时间的10 20 大部分的程序员每天大约能写出10 12行的能进入最终的产品的代码 不管他的技术水平有
  • 数据量超过亿级别,MySQL大表迁移该如何做?

    MySQL 作为当前应用最广泛的开源关系型数据库之一 具有高性能 稳定性和易用性等特性 是许多网站 应用和商业产品的主要数据存储 在一些场景中 如果出现单表行数上亿的情况 就可能需要开发和 DBA 对大表进行优化 分表 归档或扩容操作 而在
  • std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题

    在std shared ptr被引入之前 C 标准库中实现的用于管理资源的智能指针只有std auto ptr一个而已 std auto ptr的作用非常有限 因为它存在被管理资源的所有权转移问题 这导致多个std auto ptr类型的局
  • 一文解决linux下mysql FEDERATED 存储引擎的配置和使用(笔者亲测有效)

    C C 气象数据中心实战工业级项目系列文章目录 第五章 解决linux下mysql FEDERATED 存储引擎的配置和使用 文章目录 C C 气象数据中心实战工业级项目系列文章目录 一 linux下mysql FEDERATED 存储引擎
  • 华为OD机试 - 文件目录大小(Python)

    题目描述 一个文件目录的数据格式为 目录id 本目录中文件大小 子目录id列表 其中目录id全局唯一 取值范围 1 200 本目录中文件大小范围 1 1000 子目录id列表个数 0 10 例如 1 20 2 3 表示目录1中文件总大小是2
  • ubuntu 下 opencv的安装以及配置(亲测有效)

    当在Ubuntu上安装OpenCV时 可以按照以下详细步骤进行操作 1 更新apt包列表 sudo apt update 这将更新系统的包列表 确保可以获取到最新的软件包信息 2 安装所需依赖项 sudo apt install build