Linux下OpenCV的安装与测试成功教程(解决E: 无法定位软件包 libjasper-dev、无法找到directory `opencv.pc‘、fatal error:“highgui.h“)

问题解决:“E: 无法定位软件包 libjasper-dev“ 编译OpenCV过程记录,记录下实施有效的处理流程。 阅读详情
AI摘要

本文档记录了在Ubuntu 20.04上手动安装OpenCV 4.5.5的详细步骤,包括下载源码、解压、配置依赖、编译、安装、配置环境变量和验证安装成功的过程。遇到的问题如库文件缺失、连接失败等均有解决方法。

目录

前言

下面是步骤

1、下载OpenCV源码

2、解压到指定目录并创建build目录

3、下载编译OpenC源码的cmake和一些依赖库。

4、检查cmake安装版本,检查是否安装成功

5、接下来用cmake编译opencv。

6、系统环境变量进行配置

7、c++程序配置环境变量

8、确保opencv4.pc在指定位置

9、利用官方samples库验证是否安装成功


前言

好激动,断断续续装了两三天才装上,踩了好多坑。

这里把成功安装的步骤详细写下来,如果有小伙伴需要,可以尝试一下,但我不能保证你也可以装好。

首先说一下我的各个版本(不谈版本的安装教程都是耍流氓!)

是用虚拟机软件:VirtualBOX6.1.30

系统版本:ubuntu-20.04.3-desktop-amd64(最小安装模式,中文)

OpenCV版本:4.5.5

安装时间:2022.2.11

下面是步骤

1、下载OpenCV源码

进入OpenCV的官方下载地址Releases - OpenCV,下载Sources。为啥官方上有Windows和MacOS的版本却没有LInux的版本?由于Linux环境比较复杂多样,所以需要将源码下载下来在本机安装好依赖库之后,自行编译。

2、解压到指定目录并创建build目录

下载好之后我是通过终端以下指令打开root的文件管理器,将下载好的zip文件解压到了/opt里面然后更名为opencv.(作为小白,暂时只知道这样子好操作)

sudo nautilus

 进入该文件夹创建一个build文件夹在终端中进入

sudo -i

cd /opt/build

3、下载编译OpenC源码的cmake和一些依赖库。

apt-get install cmake
 
apt-get install build-essential libgtk2.0-dev libavcodec-dev
 
apt-get install libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

在安装过程中注意一下有没有“连接失败”或者“忽略”的库,如果有的话执行以下指令后再重新执行前一条指令。如果还是不行可以参考我的领一篇分享Linux在sudo apt-get update或install时出现archive.ubuntu.com连接失败 [IP: 91.189.91.39 80]的错误解决方案

sudo apt-get update

如果出现E: 无法定位软件包 libjasper-dev问题,执行一下指令

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

如果确保全部都安装好了之后进行下一步步骤

4、检查cmake安装版本,检查是否安装成功

cmake -version

接下来安装pkg-config,用来配置环境变量检查版本是否安装成功。

apt-get install pkg-config

pkg-config --version

5、接下来用cmake编译opencv。

这个步骤需要配置很多参数,如果参数错误可能导致安装好之后也不能使用,如果使用别人的方法编译完成后在测试的时候出现opencv.pc找不到的情况,多半是这个原因

cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON ..
cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF ..
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON  -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF  -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

这条命令会在build目录里生成对应配置的Makefile文件,可以看到配置信息之间是通过空格和-D来分割和标示的,配置了很多信息,我觉得比较重要的一个是 -D OPENCV_GENERATE_PKGCONFIG=ON,生成opencv.pc文件的配置(注意,opencv4生成的文件叫做opencv4.pc),另外就是 CMAKE_INSTALL_PREFIX=/usr/local这个关于安装路径的配置,这里的安装路径是在/usr/local下,这也是opencv的默认配置。

千万注意,最后的两个..千万不要删,这个指向CMakeLists.txt所在的目录

此时当前目录仍是build,直接编译安装即可

sudo make install

这里需要sudo权限,也有的同学喜欢先make,在make install ,均可,先make的话可以使用make -j8指定多线程编译,会更快

安装成功后会刷出很多信息,仔细看会发现都是说×××库被安装在×××目录下的,我们这里说明一下:因为我们指定了安装路径,所以我们的头文件被放在/usr/local/include/opencv4/opencv2/目录下,我们的库文件被放在/usr/local/lib/目录下,可以进去查看一下这些文件是否是否存在。

接下来可以输入

opencv_version

来判定安装成功的opencv版本号,当出现你安装的opencv版本号时,就安装成功了。

6、系统环境变量进行配置

opencv是一个第三方的库,我们要引用它需要对系统的环境变量进行配置。

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

在文件末尾添加:

/usr/local/lib

如果这是我们第一次安装opencv,这个文件可能是个空文件,这里的/usr/local/lib就是我们安装opencv时安装的那些库的目录

将这个文件保存然后

sudo ldconfig

7、c++程序配置环境变量

接下来要为我们编写c++程序配置环境变量,我们知道一个c文件编译时首先会预处理,将头文件转换为对应的代码,所以第一步会先去找c文件里引用的头文件,然后生成中间文件,中间文件会去找它依赖的库,然后生成可执行文件,这是第二步,我们需要配置的环境变量主要就是这两个方面。

我们这里使用2步骤时安装成功的pkg-config来进行配置

首先在终端输入(这里为了编辑方便先安装一vim)

sudo apt-get install vim-gtk
vim /etc/bash.bashrc

这里是vim的操作,如果有小伙伴不太熟悉的可以跟着操作,按i后终端界面最后一行会出现-插入-,然后通过键盘下方向键一道文件末尾,在文本末尾处鼠标右键粘贴如下代码,然后按Esc后输入:(英文输入法下的冒号)然后输入x回车即可

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

这里是为pkg-config设置系统环境变量,当pkg-config运行时,他会在他的配置目录下查找.pc文件,找到对应的文件就读取它,pkg-config的默认路径是: /usr/lib/pkgconfig/和/usr/share/pkgconfig/,这里我们新给他添加了一个路径/usr/local/lib/pkgconfig。

然后

 source /etc/bash.bashrc 

更新一下系统的环境变量

8、确保opencv4.pc在指定位置

接下来在/usr/local/lib/目录下建立pkgconfig目录,然后将build文件夹下编译生成的opencv4.pc 拷贝进/usr/local/lib/pkgconfig(如果pkgconfig目录已经存在可以进文件夹检查一下是否已经存在opencv4.pc,如果存在即可跳过本步骤)

(可以通过命令行查找opencv4.pc:)

find ./ -name opencv4.pc

然后

 pkg-config --cflags opencv4

测试是否配置好环境变量

这里记住两个值: pkg-config --cflags 代表我们安装的头文件路径, pkg-config --libs opencv4代表我们安装的库文件路径

9、利用官方samples库验证是否安装成功

环境变量配置好后,进到我们解压opencv包的目录,里面有一个samples文件夹,这个里面全是各种语言的测试

cd opencv-4.3.0/samples/cpp/


进到cpp目录下测试c++使用opencv,随便找一个.cpp文件进行编译

例如:

g++ edge.cpp `pkg-config --cflags --libs opencv4`

注意这里的两个``是键盘左上方的符号,不是单引号,这代表shell的运行语句

编译成功就代表你的opencv可以使用啦!!!

然后可以运行看看效果

./a.out

如果出现如下窗口,说明你也安装成功啦,恭喜!

Opencv依赖安装中sudo apt install libjasper1 libjasper-dev无法定位软件包问题解决 阅读详情

相关推荐

无法定位libjasper-dev

文章目录前言常见问题:无法定位 libjasper-dev总结 前言 提示:安装opencv时,给opencv安装依赖项出现了这个问题。单独写一下 作总结。 提示:以下是本篇文章正文内容,下面案例可供参考 常见问题:无法定位 libjasper-dev 下载opencv的依赖时出现了这个问题。 注:我的Ubuntu18.04 使用方法一解决 解决方法 方法一:亲测有效 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xe.

向日葵骑士的博客 8499

解决 “E: Unable to locate package libjasper-dev” (亲测有效)

若运行成功,则跳至第步。

weixin_52470245的博客 5489

JetsonNX安装libgtk2.0-dev,试过绝大多数方案后终于成功!值得一试!

文章目录1.问题描述2.解决方法3.其他方法 1.问题描述 (1)正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正在读取状态信息… 完成 没有可用的软件包 libgtk2.0-dev,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃, 或者只能在其他发布源中找到 E: 软件包 libgtk2.0-dev 没有可安装候选 (2)正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正在读取状态信息… 完成 E: 无法定位软件包 libgtk2.0-dev E: 无法按照 g

吾系铵宁的博客 1833

无法定位软件包 libjasper-dev

在安装软件包时,出现无法定位,如果我们确认软件包名称正确,多半因为原里没有这个包,我们需要自己手动添加额外的软件源。

qq_46094446的博客 2034

Unity四部曲(核心)

需要先改成Cube复杂的展开留到unity进阶再说。

ultraman1234566的博客 2797

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 587

无法定位软件包libjasper-dev

无法定位软件包libjasper-dev

weixin_50497501的博客 1369

【CTFWP】ctfshow-web40

CTFWP:ctfshow-web40

LongL_GuYu的博客 1863

OpenCV依赖项,无法定位软件包libjasper-dev

1.添加软件源(指向 Ubuntu 16.04 LTS 安全更新存储库)(可能会因为网络问题无法访问公钥服务器,需要科学上网多尝试几次)3.再添加密钥之后再次重复step1添加软件源。之后可以正常安装libjasper-dev。我的系统版本:ubunutu22.04。

m0_56140527的博客 1489

ANSYS HFSS 中的相控天线阵列仿真方法

相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境(即附近的天线)和平台对其性能的影响。本博客介绍了可用于有效仿真相控天线阵列的不同方法。以下是不同仿真方法的简要概述,视频链接中提供了完整的演示。ANSYS HFSS 提供 4 种不同的相控天线阵列仿真方法:1) 晶胞-无限阵列。

jkh920184196的博客 4254

Android 13/14/15 默认授权应用权限的实现方法

Android版本修改方式实现原理13/14修改Permission.java将所有权限标记为Normal权限15修改DeviceIdleController.java + DefaultPermissionGrantPolicy.java监听应用安装并主动授权。

m0_60898338的博客 2911

树莓派4B(aarch64,arm64)bullseye无法定位libjasper-dev

该解决方案在arm64架构的mendel(debian)上进行了测试,这对Ubuntu是否有效还不清楚。 cd /etc/apt/sources.list.d sudo nano multistrap-main.list 加上这两行: deb http://ports.ubuntu.com/ubuntu-ports xenial-security main deb http://ports.ubuntu.com/ubuntu-ports impish main 保存并退出,再运行: sudo apt u

DEDSEC_Roger的博客 3963

基于STM32的宠物智能照护嵌入式系统设计

嵌入式系统是实现物联网终端设备本地化感知、决策与执行的核心技术载体,其关键在于多传感器融合、低功耗执行控制与轻量级云边协同。本文围绕环境监测(温湿度、烟雾、余粮)、机电执行(步进电机食盘、继电器风扇)和可靠通信(MQTT+ESP8266)三大技术主线,深入解析STM32F103在资源约束下的外设调度策略、ADC采样抗干扰设计、DHT11时序精准控制及HX711称重滤波算法等工程实践要点。系统强调本地闭环优先原则,确保离线基础功能可用,同时通过阿里云IoT平台实现远程监控与告警联动,为中小型智能硬件项目提供可

weixin_29155599的博客 294

报错与解决

sudo apt install libjasper-dev 报错. sudo apt install libjasper-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 E: 无法定位软件包 libjasper-dev 解决方案: # 无法找到libjasper包,所以添加以下源 sudo add-apt-repos...

无左无右的博客 1780

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 233

【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

本专栏整理了《深度学习时间序列预测案例》,内包含了各种不同的基于深度学习模型的时间序列预测方法,例如LSTM、GRU、CNN(一维卷积、二维卷积)、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等经典模型,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+

编译OpenCV时,无法定位 libjasper-dev

W: GPG 错误:http://security.ubuntu.com/ubuntu xenial-security InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32。E: 仓库 “http://security.ubuntu.com/ubuntu xenial-security InRelease” 没有数字签名。N: 无法安全地用该源进行更新,所以默认禁用该源。

marksim的博客 1048

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

E:无法定位软件包

换镜像源并更新密钥并运行。

qq_44054621的博客 1216

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ubuntu安裝opencv時遇到“E: 无法定位软件包 libjasper-dev”

基于unbuntu18.04进行安装opencv时,对依赖库进行安装, 有一个依赖包,libjasper-dev在使用命令 sudo apt-get install libjaster-dev 提示:errorE: unable to locate libjasper-dev 解决方法: sudo add-apt-repository "debhttp://security.u...

qq_40738034的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

gazebo

如果在安装Gazebo时出现“无法定位软件包gazebo”的错误信息,可能是因为Ubuntu软件源中没有包含Gazebo软件包。你可以尝试添加Gazebo软件源并重新安装。现在,你应该可以成功地安装Gazebo了。

weixin_62716435的博客 2409

linux下的opencv笔记(一)----安装opencv

1、opencv的安装 1.1 安装依赖库 sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get install -y libopencv-dev sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libtb

qq_43362405的博客 3466

错误 E:无法定位libjasper-dev

学习笔记 1. sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev 鸣谢 https://blog.csdn.net/weixin_41053564/article/details/81254410

weixin_45532178的博客 573

linux下查看opencv安装路径以及版本号

查看linux下的opencv安装库:pkg-config opencv --libs查看linux下的opencv安装版本:pkg-config opencv --modversion查看linux下的opencv安装路径:sudo find / -iname "*opencv*"在全盘上不区分大小写,搜索带有关键字opencv的所有文件及文件夹都会输出到终端,如果输出太长建议输出到txt文件里...

zhenguo26的博客 14万+

源码编译opencv时无法定位安装libjasper-dev的两种解决方法

最近在ubuntu上编译opencv4.5.5,无法安装libjasper-dev,解决的方法就是添加源镜像地址。第二步:注释已有的源,在文档末尾添加清华镜像。第一步:打开添加源的文档。

wenjing3470830的专栏 1360

linux 安装软件出现:“E:无法定位软件包”

安装软件的时候,跳出“E: 无法定位软件包”的错误,无法安装.需要换源. 在终端输入: sudo vim /etc/apt/sources.list 在弹出的文件内,将下面的源覆盖原本的内容 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted univ

qq_42178122的博客 2万+
上一篇: virtual box虚拟机软件如何加快虚拟系统中的网速?
下一篇: 嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】
盒子桥
博客等级 码龄6年 1万+粉丝 18原创
评论 28
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

盒子桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值