Ubuntu24.04 安装opencv4.10

news2024/11/23 13:11:38

Ubuntu24.04 安装opencv4.10

  • 一、下载OpenCV
  • 二、更新系统,安装必要的包
    • 1、“E: unable to locate libjasper-dev"的解决方法
    • 2、没有公钥,无法验证下列签名 :NO_PUBKEY 的解决方法
  • 三、配置,使用cmake工具
    • 1、新建build目录
    • 2、在build中,使用cmake编译opencv目录
  • 四、编译、安装、配置
    • 1、编译
    • 2、安装
    • 3、 配置
      • (1)添加库路径以及配置环境变量
      • (2)使得刚才的配置路径生效:
  • 五、测试python3环境中生效
  • 六、VirtualBox加载笔记本内置摄像头
    • 1、测试笔记本内置摄像头
    • 2、visualbox的使用

一、下载OpenCV

  1. 下载opencv:OpenCV: 开源计算机视觉库 - GitCode
  2. 下载Contrib:opencv_contrib:opencv/opencv_contrib
    OpenCV_contrib 是 OpenCV 的扩展模块仓库,包含了许多额外的算法、功能模块以及对主OpenCV库的补充,如高级特征检测器、图像分割、对象识别等。 - GitCode
  3. OpenCV的安装说明
  • 在~/opencv-4.x/doc/tutorials/introduction/linux_install中,有linux_install.markdown文档,说明了Linux系统下安装OpenCV的步骤。
  • 在~/opencv-4.x/samples/install中,有脚本linux_install_a.sh。从中可以看出,Linux系统下安装OpenCV的步骤。

二、更新系统,安装必要的包

1、“E: unable to locate libjasper-dev"的解决方法

添加该软件APT源到sources.list

 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 sudo apt update
 sudo apt-get install build-essential
 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libopenexr-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 sudo apt update
 sudo apt-get install python-dev-is-python3 python3-numpy libtbbmalloc2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-25

2、没有公钥,无法验证下列签名 :NO_PUBKEY 的解决方法

问题描述:运行apt-get update时突然出现了由于没有公钥,无法验证下列签名的问题,尝试了网上许多方法,最终找到了一种亲测有效的解决方法:
解决方法 在终端输入:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 76F1A20FF987672F 1
其中最后的代码为报错语句中的最后一部分:由于没有公钥,无法验证下列签名: NO_PUBKEY 76F1A20FF987672F

参考文献:由于没有公钥,无法验证下列签名 :NO_PUBKEY 的解决方法

三、配置,使用cmake工具

1、新建build目录

mv opencv-4.x opencv
mkdir -p build && cd build

2、在build中,使用cmake编译opencv目录

假如build目录在opencv目录下,那么

~/opencv/build$ cmake ../../opencv

四、编译、安装、配置

1、编译

~/opencv/build$ sudo make -j4

在这里插入图片描述

2、安装

~/opencv/build$ sudo make install

3、 配置

opencv4的安装路径为
后面配置路径会用到:

/usr/local/include/opencv4

库文件的路径为:

/usr/local/lib

(1)添加库路径以及配置环境变量

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

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib

(2)使得刚才的配置路径生效:

sudo ldconfig

sudo gedit /etc/bash.bashrc 

末尾加上:

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

更新环境变量

source /etc/bash.bashrc

最后

sudo update-desktop-database

五、测试python3环境中生效

python3
import cv2
cv2.__version__

结果为

exynos4412@A9-VirtualBox:/usr/local/lib$ python
Python 3.12.3 (main, Sep 11 2024, 14:17:37) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.10.0-dev'
>>> 

六、VirtualBox加载笔记本内置摄像头

1、测试笔记本内置摄像头

编译成功后,测试。进入~/opencv/samples/cpp/example_cmake路径下。这里有一个cpp文件和Makefile,CMakeLists.txt文件。
执行以下命令:

~/opencv/samples/cpp/example_cmake$ cmake .

~/opencv/samples/cpp/example_cmake$ make

~/opencv/samples/cpp/example_cmake$ ./opencv_example

在visualbox设置正确的情况下,即可打开摄像头,代表opencv安装配置成功
在这里插入图片描述

2、visualbox的使用

进入visualbox官网下载Downloads – Oracle VirtualBox

  1. 安装VirtualBox-7.1.0
    在这里插入图片描述

  2. 安装拓展包extension pack
    在这里插入图片描述
    注意: VirtualBox与拓展包extension pack的版本要一致。历史版本可以在Previous Releases中找到。
    在这里插入图片描述
    然后,在菜单中就可以选中笔记本内置摄像头。

在这里插入图片描述


参考文献:

  1. Ubuntu20.04 安装 Opencv4.4.0_ubuntu_yxdydSky-GitCode 开源社区
  2. Ubuntu22.04配置opencv_ubuntu22.04安装opencv-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2143145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 玩具租赁系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

智能 Uber 发票 PDF 合并工具

在现代商务出行中,尤其是在跨国出差中,处理和整合大量 Uber 发票已成为一项不小的挑战。手动整理和合并这些发票不仅耗时,还容易出错。作为开发者,为什么不开发一个自动化工具,将这些任务交给代码来完成呢?…

【AI学习笔记】初学机器学习西瓜书概要记录(一)机器学习基础知识篇

初学机器学习西瓜书的概要记录(一)机器学习基础知识篇(已完结) 初学机器学习西瓜书的概要记录(二)常用的机器学习方法篇(待更) 初学机器学习西瓜书的概要记录(三)进阶知识篇(待更) 文字公式撰写不易&#x…

基于代理的分布式身份管理方案

目的是使用分布式的联合计算分发去替换掉区块链中原有的类第三方可信中心的证书机制,更加去中心化。 GS-TBK Group Signatures with Time-bound Keys. CS-TBK 算法 Complete subtree With Time-bound Keys,该算法是用来辅助检测用户的签名是否有效&…

新手学习Python第十天-新手笔记(速学)

一、特殊方法和特殊属性 1.1 特殊属性 __dict__:获得类对象或实例对象所绑定的所有属性和方法的字典 1.2 特殊方法: 1.2.1 .__len__:通过重写__len__()方法,让内置函数len()的参数可以是自定义类型 长度 1.2.2 __add__():通过重写__add__()方法&…

ICMP

目录 1. 帧格式2. ICMPv4消息类型(Type = 0,Code = 0)回送应答 /(Type = 8,Code = 0)回送请求(Type = 3)目标不可达(Type = 5,Code = 1)重定向(Type = 11)ICMP超时(Type = 12)参数3. ICMPv6消息类型回见TCP/IP 对ICMP协议作介绍 ICMP(Internet Control Messag…

HTTP中的Cookie与Session

一、背景 HTTP协议是无状态无连接的。 无状态:服务器不会保存客户端历史请求记录,每一次请求都是全新的。 无连接:服务器应答后关闭连接,每次请求都是独立的。 无状态就导致服务器不认识每一个请求的客户端是否登陆过。 这时…

TCP并发服务器的实现

一请求一线程 问题 当客户端数量较多时,使用单独线程为每个客户端处理请求可能导致系统资源的消耗过大和性能瓶颈。 资源消耗: 线程创建和管理开销:每个线程都有其创建和销毁的开销,特别是在高并发环境中,这种开销…

计算机三级网络技术总结(一)

RPR环中每一个节点都执行SRP公平算法IEEE 802.11a和g将传输速率提高到54Mbps一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息就要先建立TCP连接在一个区域内的路由器数一般不超过200个进入接口配置模式&#xff1a;Router(config)#interface <接口名> 封装ppp协…

CentOS上使用Mosquitto实现Mqtt主题消息发布和订阅mqtt主题消息连同时间戳记录到文件

场景 CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载&#xff1a; CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载-CSDN博客 上面介绍了mosquitto的离线安装。 如果业务场景中需要订阅某mqtt主题的消息并将收到消息的时间以…

婚礼弹幕上墙阳光正好,爱意正浓,打造一场出圈的唯美婚礼!

原文地址 婚礼现场的弹幕功能可以给整个场景增添温暖和喜庆的氛围。通过手机发送祝福&#xff0c;让亲友可以即时将祝福传达给新人&#xff0c;同时这些祝福以弹幕的形式在大屏幕上滚动展示&#xff0c;增加了现场互动的乐趣。墙上新闻搭配的功能则更加抢眼&#xff0c;不仅可…

idea插件推荐之Cool Request

Cool Request是一款基于IDEA的HTTP调试工具&#xff0c;可以看成是轻量版的postman&#xff0c;它会自动扫描项目代码中所有API路径&#xff0c;按项目分组管理。一个类被定义为Controller且其中的方法被RequestMapping或者XXXMapping注解标注以后就会被扫描到。 对应方法左侧会…

【C++二叉树】102.二叉树的层序遍历

107. 二叉树的层序遍历 II - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a; 层序遍历&#xff0c;但是要注意输出的结果是一个二维数组&#xff0c;不是一层一个值一个值的输出&#xff0c;而是要一层一层的输出。可以通过一个循环控制每一层的数据个数&#xff…

FastAdmin CMS 操作手册

FastAdmin CMS 操作手册 概述&#xff1a; 安装&#xff1a; 配置&#xff1a; 模板&#xff1a; 模板目录&#xff1a; 标签&#xff1a; 全局&#xff1a; 文章&#xff1a; 专题&#xff1a; 栏目&#xff1a; 公共参数&#xff1a; 单页&#xff1a; 特殊标签&#xff1a;…

python正则表达式如何不区分大小写

使用python的re模块做模式匹配时&#xff0c;有时需要忽略大小写&#xff0c;只需要在re.search()函数中添加参数re.IGNORECASE即可。 mystring some string pattern some pattern match re.search(pattern, mystring, re.IGNORECASE)

95、k8s之rancher可视化

一、ranker 图形化界面 图形化界面进行k8s集群的管理 rancher自带监控----普罗米修斯 [rootmaster01 opt]# docker load -i rancher.tar ##所有节点 [rootmaster01 opt]# docker pull rancher/rancher:v2.5.7 ##主节点[rootmaster01 opt]# vim /etc/docker/daemon.jso…

1.数据结构-双链表

一.双链表与单链表的对比&#xff1a; 二.双链表的初始化(带头结点)&#xff1a; 1.图解&#xff1a; 2.代码演示&#xff1a; #include<stdio.h> #include<stdlib.h> ​ //定义双链表结构体 typedef struct DNode {int data;struct DNode *prior;//前驱指针即指…

【Windows】使用 WMI 获取系统版本信息

目录 获取系统版本信息代码 获取系统版本信息 通过 RtlGetNtVersionNumbers 获取系统版本的方法可能不适用于所有情况&#xff0c;而且将要过时&#xff08;被废弃&#xff09;。下面介绍一种通过 WMI 查询并根据版本号进行划分的系统版本解析工具&#xff0c;其他方法还有通过…

学成在线练习(HTML+CSS)

准备工作 项目目录 内部包含当前网站的所有素材&#xff0c;包含 HTML、CSS、图片、JavaScript等等 1.由于元素具有一些默认样式&#xff0c;可能是我们写网页过程中根本不需要的&#xff0c;所有我们可以在写代码之前就将其清除 base.css /* 基础公共样式&#xff1a;清除…

如何用MATLAB计算多边形的几何中心

在MATLAB中&#xff0c;计算多边形的几何中心&#xff08;又称质心或重心&#xff09;可以通过以下步骤实现。假设你有一个多边形&#xff0c;其顶点按照顺时针或逆时针顺序排列在一个矩阵中。具体步骤如下&#xff1a; 定义多边形顶点&#xff1a;首先&#xff0c;你需要将多边…