ubuntu20.04下安装,运行关于opencv的Python程序相关库

最初对ubuntu20.04以及opencv和python运行环境一窍不通,折磨了好几天,虚拟机重建了好几次,各个帖子的方法都跑遍了。最后终于装上,记录一下,免得搞忘。

先总结下之前的问题:推测之前的问题都在于我先入为主安装了vscode上的Python,但其实ubuntu20.04他是自带了Python3.8.10的,最后导致在程序运行中,可能是出现了python定位错误,运行环境不一致等情况,导致后面安装的诸如dlib库,scipy库等找不到对应运行环境和执行路径,从而导致编译程序不能正确调用对应库。

重新安装ubuntu20.04后,或者选择完全卸载vscode及其已经安装的组件内容。根据个人习惯选择语言。可以先进入ubuntu20.04自带的“语言支持”软件,先下载安装简体中文语言,并全机应用。

Ubuntu上的下载源默认为外国源,因此在国内下载的话速度会很慢。为了后续下载安装过程加快,我们需要更换为国内源。

Ubuntu20.04上可以通过“软件和更新”图标。选择“下载自”,并点击“选择最佳服务器”,会自动根据所在位置选择最快的服务器并配置下载源,可以大大提高下载速度和准确度。这里我选用的是腾讯源。

接下来就可以进行完成人脸重要组件的下载安装阶段了。

  1. 安装opencv

这里是参考了csdn上《ubuntu18.04安装opencv4.5.4》这篇文章。

  1. 首先确保有cmake和make编译工具,可用以下命令安装。

sudo apt-get installcmake
sudo apt-getinstall  make

一路按Y同意即可,若不确定是否安装过这两个编译工具,可以采用以下命令查看版本号,这类命令在ubuntu系统中是大同小异的。

sudo make --version
sudo cmake --version

至于为什么要安装make工具?make是一个自动化编译工具,但是它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。对于一个工程文件而言,我们使用make指令就能完全的编译整个工程的源文件,相比于使用gcc来编译,效率就大大提高了。但是需要编写一个规则文件,Make工具依据它来批量处理编译,这个文件就是Makefile文件。但是Makefile文件编写过程也很麻烦,于是需要用到cmake这一跨平台编译工具,辅助完成编写。当然,ubuntu系统发展至今逐渐完善,这些相关编译工具也是不断进行功能升级,更加方便快捷和自动化。

  1. 安装opencv依赖环境

sudo apt-get installbuild-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-devlibswscale-dev libtiff5-dev
sudo apt-get installlibcanberra-gtk-module
sudo apt-get installpkg-config
sudo apt-get installlibopencv-dev#很关键,否则程序总会报错,找不到include的头文件

这个过程也是由系统自动从下载源中抓取,下载,安装。一路按Y同意即可。

如果出现不能定位安装包一类的问题。可以从更换下载源,检查安装包名称是否发生变化等方面着手。当然也可以将报错信息复制出来,并搜索解决方案。

  1. 准备opencv4.5.4的安装包。

可以去官网下载,https://opencv.org/releases/,也可以选择我这个百度云链接。链接:

  1. 下载完成后,解压并复制到根目录。如果是从windows平台上下载的,也可以直接将压缩包从windows,通过拖动的方式,拖进虚拟机(vmware workstation已安装了vm-tools)根目录中。右键点击提取到即可。

  1. 编译并安装

解压完成后,进入opencv-4.5.4文件夹,在该目录下新建一个build文件夹(我已建好)。

新建完成后,进入build文件夹,打开终端执行cmake命令(这里就要用到cmake工具,不过也仅此而已,不需要你手动编写了):已经选定了安装位置,

cmake -DCMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..

等待编译完成后执行命令

sudo make -j4      #-j4只是为了多线程编译,提高编译速度。耐心等待
sudo make install    #安装
  1. 环境配置

将opencv4.pc文件复制到pkgconfig文件夹里

sudo cp/usr/local/lib/pkgconfig/opencv4.pc /usr/lib/pkgconfig/
  1. 配置环境变量

sudo gedit/etc/ld.so.conf.d/opencv.conf   #1.打开后可能是空文件,在文件内容最后添加/usr/local/lib
sudo ldconfig                                               #2.更新系统库
sudo gedit/etc/bash.bashrc     #3.配置bash,在末尾添加  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig     source ~/.bashrc                           #4.更新bash文件
sudo updatedb

如果updatedb命令找不到,说明缺少mlocate包,执行

sudo apt-get install mlocate  #继续安装即可

如果当前用户权限不够,请先进入root

  1. 安装测试

pkg-config opencv4--modversion

响应出版本号即为成功

也可以进如opencv文件夹中的官方示例(samples),我的路径为/opencv-4.5.4/samples/cpp/example_camke

可直接运行一下命令

cmake .
make
./opencv_example

如果打开是以下界面,但是是黑屏,恭喜你,至少opencv是安装成功了。

但笔记本自带摄像头未打开,可以考虑检查这几个方面

1.虚拟机→可移动设备→要开启自带摄像头

2.windows下:运行→services→vmware usb 使其要处于启动状态

3.要注意usb兼容性,虚拟机→设置→usb控制器,usb2.0不行试usb3.0

4.终端错误是can’t open cameraby index,要考虑在命令行前加上sudo,提高权限

解决这些问题应该就可以了。

也可在/cpp文件夹中,选择你想编译运行的示例

g++ A.cpp -o B`pkg-config –cflags –libs opencv4`#输出执行文件B可完成文件编译,再使用 
./B # 即可完成执行,此处A和B均是你选择的文件 

参考《ubuntu18.04安装opencv》

https://blog.csdn.net/Murray__/article/details/121729438?ops_request_misc=&request_id=&biz_id=102&utm_term=Ubuntu18.04%E5%AE%89%E8%A3%85Opencv4.5&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-121729438.142^v74^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

  1. 从pip3,setuptools,cmake编译工具等工具库重新安装,

  1. 安装pip3,python中所需要的各种工具库,工具包可以用pip工具统一管理。如果安装的python3版本,则建议使用pip3工具,对python3更加适配,避免不必要的麻烦。

命令为

sudoapt install python3-pip
sudopip3 –version    #  检查pip3安装版本

正好适合ubuntu20.04自带的python3.8版本,尤其要注意这些工具包之间的版本适配。否则可能出现明明装上了工具包,却还是不断报错缺少工具包。

安装dlib库

pip3 install dlib

成功安装dlib-19.24.0

继续安装numpy,

如上,pip3工具的下载源也是国外的,所以在国内下载就会很慢。我们先给pip3统一换个国内源,自动写入以下文件

pip configset global.index-url https://mirrors.aliyun.com/pypi/simple

同样用pip3安装指令,下载速度快了很多,最终安装版本是numpy-1.24.2,

pip3安装scipy,注意版本适应

sudopip3 install scipy

Ps:

也可以通过whl文件进行安装(具体方式站内大佬都有很多讲述),whl文件其实就是包编译好的文件格式,细心的同学也许已经发现了在使用pip安装scipy库的时候就是下载的whl文件来进行安装的,那为啥还需要单独使用whl文件来安装包呢?

单独下载whl文件来进行安装,是因为有时候使用pip安装包的时候,下载并不是whl文件而是源码,下载完源码之后需要在本地进行编译成whl文件然后再进行安装,但是有时候因为本地的环境问题会导致编译出错,有的错误解决起来会比较麻烦,这时候采用whl文件来进行安装能够避免这类问题的发生。另外采用whl文件独立安装,还可以选择scipy的对应版本,解决版本冲突带来的各种问题。

另外,pip3安装scipy时,似乎会一并安装合适版本的numpy。如果这两个工具包之间版本不合适,似乎会影响最终的安装结果。

最后python下运行opencv,需要相关的cv2模组。

cv2模组在pip3中名为opencv-python 因此

sudopip3 install opencv-python

至此,相关的人脸检测的工具库大抵上是安装完成了。当某些程序需要继续补充时,我们再继续添加补充安装即可。

第一次写,写的不好,大家多多包涵。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复苏与机遇:2023消费趋势洞察报告.pdf(附下载链接)

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 【限时免费】ChatGPT4体验,无需翻墙直接用 ChatGPT团队背景研究报告 ChatGPT的发展历程、原理、技术架构及未来方向 ChatGPT使用总结&a…

ChatGPT风暴席卷全球,普通人该如何应对被淘汰的风险?

近日,ChatGPT风暴席卷全球。据新闻报道:ChatGPT仅仅上线两个月,已获1亿月度活跃用户,成为历史上增长最快的面向消费者的应用。 特斯拉CEO马斯克也表示:ChatGPT好的吓人,我们离强大到危险的人工智能已经不远…

chatgpt赋能python:Python就业岗位分析:机遇和挑战并存

Python就业岗位分析:机遇和挑战并存 Python是一种高级编程语言,它具有易于学习、易于阅读和维护的特点。自问世以来,Python一直是最受欢迎的编程语言之一,用于各种领域的开发、数据分析和科学计算等方面,因此Python岗…

前端小白是如何利用chatgt用一周时间从做一款微信小程序的

前端小白是如何利用chatgt用一周时间从0做一款微信小程序的 随着chatgpt的大火,真的是在工作上给各行各业的人带来了极大的便利,本人是一个java程序员,其实我自己是一直想开发一款属于自己的小程序的,但是迫于对前端知识的贫瘠&a…

女朋友学高数,我花了15分钟用栈给她写了一个计算器

前记 女朋友说:“高数好难,看我最近挺辛苦的,你送我一个礼物给我,让我开心一下吧。你猜猜我想要什么。” 我想了半天,从书到鞋子到电子产品最后到生活用品,感觉什么都不缺,然后和她说&#xf…

【浅谈】游戏故事编写指南:10个基本步骤

Step1 一个点子/灵感 Step2 故事的起承转合 初步拟定起因、主角、敌人、事件、结局。 Step3 游戏流程图(迭代3~7) 关卡/场景 正式命名(关卡/场景名) 时间(游戏里设定的) 相关剧情 角色成长:这一关的主要玩法 大概通关时间 关卡/场景主…

【Pygame小游戏】剧情流推荐:什么样的游戏剧情能获得大家的喜爱?(决战紫禁之巅 )

前言 哈喽!大家好,我是栗子同学。 剧情是游戏的核心要素,也是游戏沉浸感的主要来源之一。 不论是何种类型游戏,不论其是否以剧情为主要玩点,优秀的剧情总能让一款游戏大放异彩。 我发现🎄 最近哪些剧情…

linux主机宕机排查问题方法

1 排查思路 1.1 查看宕机的时间记录和历史登陆还有重启时间 1)查看历史重启 last reboot last -F |grep crash 2)查看历史异常登录用户 last 1.2 首先查看系统日志 linux下的/var/log/下的log日志,包括message,内核报错日志…

linux主机宕机排查问题的方法

原因分析 服务器分类,web服务器,数据库服务器,文件服务器,中间件,其它服务器。 web服务器分析:常见的web应用apache,nginx,IIS等。 宕机原因很多,cpu,内存&am…

笔记本计算机上安装软件是什么软件,电脑上如何使用剪映App软件_教你在电脑上使用剪映App软件的方法...

剪映App是一款非常实用的轻松制作短视频的软件,有着强大的视频处理功能,可以对视频进行切割、变速、倒放、画布、转场等视频处理。但是剪映APP同在只是应用于智能手机端,电脑端不能够直接使用,那么有什么办法在电脑上使用剪映App&…

TimesNet 代码阅读

主函数 ./run.py args parser.parse_args() args.use_gpu True if torch.cuda.is_available() and args.use_gpu else Falseif args.use_gpu and args.use_multi_gpu:args.dvices args.devices.replace( , )device_ids args.devices.split(,)args.device_ids [int(id_) f…

回归分析处理

线性回归 最小二乘法 对于某数据量 有呈线性关系的输出量 ,且 ,现有对这些数据量的采集序列,这些采集量会存在随机误差,线性回归的目的便是找到保证使误差最小的情况下的回归系数 。 即通过下列方程组求 可利用最小二乘法&a…

Stata作回归分析

Stata将回归分析结果直接导出到Word里 ssc install asdoc, replace写每个命令时前面加上asdoc就可将生成的结果存在word 中 将图片保存成.emf格式,可在word中直接插入。 导入数据 数据描述 . sum#描述数据Variable | Obs Mean Std. Dev. M…

[DataAnalysis]回归分析细节

1、不可解释变差与可解释变差:SSTSSESSR 2、原假设与备择假设 3、回归常见的问题 4、R方和调整后的R方

stata行logistic回归交互项(交互作用)的可视化分析(1)

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技,几乎在高分的SCI中必出现,因为把人群分为亚组后再进行统计可以增强文章结果的可靠性,不仅如此,交互作用还可以使用来进行数据挖掘。在既往文章中,我们已…

EMGU.CV进阶 (一、银行卡识别)

一、效果 识别出银行卡上的数字,并显示 注:本文所用所有知识,均在入门系列提到过 原图: 效果: 二、模板制作 目的,将10个数分成10个模板 2.1 加载模板 var imgTemplate new Mat("NumberTemplat…

OpenCV之识别银行卡号

一、简介 利用OpenCV所学的简单基础(点我进入),制作一个识别银行卡号的程序。 也可以由深度学习来完成这个任务,具体可以参考: 项目1. PPOCRLabel半自动工具标注自制身份证数据集项目2. 基于OCR身份证号码识别全流程 结果输出如…

Coremail专家观点:如何应对当前AI技术对邮件安全的影响

近日,ChatGPT在互联网上掀起了一阵热潮,目前月活用户超过 1 亿,注册用户之多导致服务器一度爆满。 人工智能的话题遍地可见,如“ChatGPT会取代哪些行业?”、“ChatGPT的实现原理”、“ChatGPT的玩转攻略”等等&#x…

对话式AI系列:任务型多轮对话的实践与探索

移动互联网带来了大数据的普及,摩尔定律预言了计算机硬件的发展,深度学习则借助这阵东风实现了技术上的突破,人工智能成功进入大众视野,并改变了人们的日常生活。 “小X同学,请打开电视”、“小X小X,请播放…

晋飞碳纤科创板IPO被终止:曾拟募资近6亿 凯辉基金是股东

雷递网 雷建平 5月9日 上海晋飞碳纤科技股份有限公司(简称:“晋飞碳纤”)日前IPO被终止。晋飞碳纤是2022年12月底递交招股书,曾准备在科创板上市。 晋飞碳纤原计划募资5.89亿元,其中,3.2亿元用于高性能复合…