ubuntu编译和安装opencv-3.4.13

2023-10-26

1.安装相关软件包
打开ubuntu,安装以下工具

sudo apt install  build-essential 
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

第三行中,可能会出现 无法定位软件包libjasper-dev 的错误提示

查阅资料后找到解决方法如下(原文:https://blog.csdn.net/weixin_41053564/article/details/81254410)

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev

其中 libjasper1 是 libjasper-dev 的依赖包

2.获取Source
接下来获取 OpenCV 的 source 文件,直接到官网下载:https://opencv.org/releases/

点击对应版本的 Source 即可下载

下载成功后解压,解压到哪个文件夹都可以

3.用 CMake 从 Source 构建 OpenCV
进入解压出来的opencv-3.4.13文件夹,创建一个新文件夹,我创建的叫 build

进入新文件夹 build

执行命令

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

如果报错,那么去掉 -D后面的空格再尝试一下,即

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

这之中 , /usr/local 是 OpenCV 的安装路径

如果没有安装工具Cmake,上面的cmake操作会提示出错

sudo apt install cmake
安装后查看版本:
cmake -version
我的版本是3.10.2

接下来开始编译

sudo make

也可以使用多线程进行编译

sudo make -j4

j 后面的数字是你想要使用的线程数量

开始编译后,等待编译结束,通常要挺长时间

编译结束后

sudo make install 

完成后,OpenCV 就安装好了,接下来要配置 OpenCV 的编译环境

4.配置环境
这部分参考了 https://blog.csdn.net/sandalphon4869/article/details/94398876#3launchjson_144

首先将OpenCV的库添加到路径,从而可以让系统找到

打开opencv.conf ,打开后很可能是空白

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

在文末添加,因为我的是空白所以直接就添加了

/usr/local/lib

保存后,执行如下命令使得刚才的配置路径生效

sudo ldconfig 

接下来配置 bash

sudo gedit /etc/bash.bashrc  

在文件最末尾添加

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

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

然后更新

sudo updatedb 

到这里配置就完成了

5.测试
转到 opencv-3.4.13/sample/cpp/example_cmake 目录下
执行下面三步命令

cmake .
make
./opencv_example

如果摄像头打开,左上角出现 Hello OpenCV 则证明安装成功

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

ubuntu编译和安装opencv-3.4.13 的相关文章

  • 如何在汇编程序中使用 C 库?

    我想知道如何用汇编语言编写文本编辑器 但现代操作系统需要 C 库 特别是对于它们的窗口系统 我找到了这个page http pengu1n is programmer com posts 8304 html 这对我有很大帮助 但我想知道是否
  • C/C++ - 运行系统(“process &”),然后写入其标准输入

    我正在研究 Linux 和 C C 我编写了一个带有一些线程的程序 include pthread h 并使用 sudo 运行它 一个线程运行一个进程 mplayer 并通过添加 使其保持运行 以便system 可以快速返回 system
  • fopen() 在 Linux 上创建文件失败

    我正在尝试通过创建一个文件fopen 如下 但不创建该文件并让我 Can t create file P S 我在 Linux Ubuntu 上使用 LAMP 服务器 在创建该文件之前我已经尝试过以下命令 sudo chmod R 755
  • lseek() 的复杂度是 O(1) 吗?

    我知道我的问题在这里有答案 QFile 寻道性能 https stackoverflow com questions 6171403 qfile seek performance 但我对这个答案并不完全满意 即使在查看了以下实现之后gene
  • 如何使用 opencv 从字节显示视频?

    我正在开展一个项目 其中我们使用无线电调制解调器将数据 视频和遥测 从无人机传输到地面站 我们需要做的是实时显示视频 并能够知道 C 中的每一块遥测数据对应哪一帧 数据被解封装为遥测和视频 mpeg4 字节 由于我对 OpenCV 有一些经
  • YUV 422、YUV 420、YUV 444

    例如 我有 4 4 图像 我想分别提取 Y U 和 V 分量 如果图像是 YUV 422 YUV 420 和 YUV444 该怎么办 我有兴趣了解 Y U 和 V 的数组结构如何存储在 422 420 和 444 中 以便可以访问它 Thi
  • 使用 Google Breakpad 的小型转储无法显示应用程序崩溃的行号

    我在崩溃时获得了应用程序的小型转储文件 但它没有给我诸如函数名称和行号之类的详细信息 输出如下 Operating system Linux 0 0 0 Linux 3 3 8 2 2 1 SMP Thu May 12 13 30 26 U
  • Linux上的轻量级内存泄漏调试

    我首先寻找现有的答案并看到Valgrind是大家最喜欢的 Linux 内存泄漏调试工具 很遗憾Valgrind似乎不适合我的目的 我将尝试解释原因 限制条件 泄漏仅在客户环境中重现 由于某些 法律限制我们必须使用现有的二进制文件 没有重建
  • 访问附加到 ELF 二进制文件的数据

    我有一个静态 ELF 二进制文件 它从 zip 文件中读取数据 为了简化分发 我想将 zip 文件附加到二进制文件中 如下所示 cat mydata zip gt gt mybinary 我知道这样做不会损坏 mybinary 但我不知道如
  • 如何将回车符作为字符添加到文件中?

    我想要一个像这样的字符串 blablbabla
  • 使用 Shell 脚本自动安装 R-Studio

    有没有办法在 Linux 系统上自动安装 R Studio 它应该自动检测操作系统并安装具有所需依赖项的 R 和 R Studio 谢谢 我准备了以下 shell 脚本来使安装完全自动化 bin bash Program R Studio
  • 服务器启动时 Java 运行时环境 SIGSEGV 错误

    我正在使用 java 版本 1 7 0 45 和 eclipse kepler 在服务器启动时我收到以下错误日志 虽然我发现了几个帖子 1 https stackoverflow com questions 19332489 how to
  • 在python中使用tesseract 3.02的C API与ctypes和cv2

    我正在尝试在 python 中将 Tesseract 3 02 与 ctypes 和 cv2 一起使用 Tesseract 提供了一组公开的 DLL C 风格 API 其中之一如下 TESS API void TESS CALL TessB
  • 安装Python时出错

    击中后 make install 我收到以下错误 usr bin install cannot create regular file usr local bin python2 6 Permission denied make altbi
  • 计算以某个单词开头的行数

    如何计算文本文件中以某个单词开头的行数 我不想使用sed进而wc l 有更好的解决办法吗 只需 grep 你的单词 然后使用 wc l 来计算行数 就像这样 grep your word path to file wc l
  • gcc 中“-l”选项的放置

    我在放置时遇到一些问题 l使用时的选项gcc 这是一个用于重现问题的精简版本 t c include
  • OpenSSL 和 CryptoJS SHA256 加密转换

    我的问题是 OpenSSL 的新版本与 CryptoJS 的默认设置不兼容 openssl enc 用于基于密码的密钥派生的默认哈希值 1 1 0 中更改为 SHA256 而较低版本中更改为 MD5 https unix stackexch
  • 如何在Linux shell脚本中将文本文件中的两行合并到同一行中

    我使用 wget 命令从 Nagios 下载了它的 html 文件 然后使用以下代码将该 html 文件转换为 Textfile html2text width 180 file html gt a txt 然后我剪切了前 10 行 因为我
  • -bash: /usr/bin/virtualenvwrapper.sh: 没有这样的文件或目录

    我无法弄清楚 shell 试图在哪里运行 usr bin virtualenvwrapper sh服务器登录时 我希望 virtualenvwrapper 永久卸载 而不仅仅是从 shell 实例中删除 我以为我卸载了它pip uninst
  • 将图像从 CV_64F 转换为 CV_8U

    我想转换类型的图像CV 64FC1 to CV 8UC1在 Python 中使用 OpenCV 在 C 中 使用convertTo函数 我们可以使用以下代码片段轻松转换图像类型 image convertTo image CV 8UC1 我

随机推荐

  • 注释处理工具

    文章目录 pom CommnetUtil RafUtil https blog csdn net wwq921220 article details 119515809 pom
  • vscode快速打出vue项目模块

    在vscode的文件 首选项 用户片段 然后再搜索框输入vue 回车 打开vue json文件 添加下面这个代码 Print to console prefix vue body
  • 【改进的多同步挤压变换】基于改进多同步挤压的高分辨率时频分析工具,用于分析非平稳信号(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 文章 1 概述 文献来源 该文提出一种高分辨率时频
  • C++ 文件和流

    iostream 标准库提供了 cin 和 cout 方法 用于从标准输入读取流和向标准输出写入流 而从文件中读取流或向文件写入流 需要用到fstream标准库 在 C 中进行文件处理时 须在源代码文件中包含头文件
  • 基本ACL与高级ACL

    ACL Acess Control List 即访问控制列表 这张表中包含了匹配关系 条件和查询语句 表只是一个框架结构 其目的是为了对某种访问进行控制 信息点间通信 内外网络的通信都是企业网络中必不可少的业务需求 但是为了保证内网的安全性
  • [SQL报错] SQL报错:could not execute statement 和 query did not return a unique result: 2; nested excepti

    错误信息 操作失败 could not execute statement SQL n a nested exception is org hibernate exception DataExcepti 原因是数据库字段长度的限制 还有可能
  • API的使用

    通过API向第3方服务商请求服务 返回数据JSON格式处理成PHP数组格式
  • 机器学习小组知识点7:伯努利分布(Bernouli Distribution)

    适用环境 伯努利分布是较为简单的一种分布 应用于两种实验结果 要么成功 要么失败 一定程度上是二元的性质 这里 我们假设成功的概率为 p p 显然失败的概率就变成了1 p1 p 概率公式可以表示为 f x px 1 p 1 x f x p
  • Python 字符串去除空格的方法

    在处理Python代码字符串的时候 我们常会遇到要去除空格的情况 所以就总结了多种方法供大家参考 1 strip 方法 去除字符串开头或者结尾的空格 str Hello world str strip 输出 Hello world 2 ls
  • 在Unity3D中控制动画播放

    用Unity3D也算是好久了 但是每次做项目总还是能学到新的东西 这次做一个TPS的项目就遇到了这样一个问题 如何同时在上下半身播放不同的动画 解决方法其实是很简单 但由于对于动画资源的了解不足导致问题不断 最后是彻彻底底的研究了一遍Uni
  • myeclipse或sts启动时building workspace加载很长时间

    解决方法 Preference gt General gt Starup and Shutdown勾选Refresh workspace on startup完成 这样每次启动项目时重新加载工作空间 等于重新导入了一份项目 就省去了代码的校
  • esp32 作 MCU 端 使用 AT 命令对 esp8266 进行 OTA demo

    AT CUSTOTA total len current packet len offset checksum OK MCU 收到 gt 之后发送 data 当前数据写入到 FLASH 之后 打印 RECV OK 当接收到 total le
  • 解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题

    先来看一个简单的读取RTSP的示例程序 import cv2 cap cv2 VideoCapture rtsp admin admin 123 172 0 0 0 ret frame cap read while ret ret fram
  • 测试两个容器是否连通

    进入容器查看ip root f2b5cdfdc5ed private geth ip addr 1 lo
  • 如何打开Fedora 15命令行窗口CLI

    如何打开Fedora 15命令行窗口CLI 在DesktopFolder以外的桌面区域 右击可以看到Konsole 点击该快捷键 即可启动命令行窗口CLI 第一步 右击桌面 第二步 点击Konsole
  • python day03

    一 使用字符串 str helllo len str 用len函数求字符串长度 str upper 把字符串中的小写变成大写 str find 查找子串所在位置 str index 与find类似但找不到子串时会报错 str 2 从字符串中
  • c++ string函数详细返回值及用法!

    通过在网站上的资料搜集 得到了很多关于string类用法的文档 通过对这些资料的整理和加入一些自己的代码 就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了 下面先罗列出string类的函数有哪一些 然后再罗列出函数的原型
  • 学习 Python 之 Pygame 开发魂斗罗(一)

    学习 Python 之 Pygame 开发魂斗罗 一 Pygame 回忆Pygame 1 使用pygame创建窗口 2 设置窗口背景颜色 3 获取窗口中的事件 4 在窗口中展示图片 1 pygame中的直角坐标系 2 展示图片 3 给部分区
  • 在中国,把区块链玩得转的公司有这几家

    时下最火的Fintech 金融科技 非区块链莫属 区块链正在成为国家层面规划的重点领域之一 区块链可以简单理解为一个由所有参与者公共维护的账本 账本信息的公开使得所有参与者可以一起来校验记账的正确性 使得区块链成为所有参与者可以信任的载体
  • ubuntu编译和安装opencv-3.4.13

    1 安装相关软件包 打开ubuntu 安装以下工具 sudo apt install build essential sudo apt install cmake git libgtk2 0 dev pkg config libavcode