Python+OpenCV 调用手机摄像头并实现人脸识别
文章内容
:
1、windows 环境下安装 OpenCV 机器视觉环境搭建;
2、基于通过Python+OpenCV
调用手机摄像头并实现人脸检测识别。
目录
- 1 实验环境
- 2 实验准备
- 2.1 下载 OpenCV
- 2.2 OpenCv安装
- 2.3 测试安装
- 3 使用OpenCV调用手机摄像头并实现人脸识别
- 3.1 手机上的准备
- 3.2 创建调用实现的代码
- 3.3 下载人脸检测xml文件
- 3.4 实验效果
- 4 实验分析
- 5 总结
- 6 参考资料
1 实验环境
- 操作环境:Windows 10 64位
- 开发 IDE:Spyder 4.2.5
- Python:3.8
- OpenCV:OpenCv-Python 4.5.3
- 硬件需要:PC(win10)、手机
2 实验准备
2.1 下载 OpenCV
主要介绍使用 pip 安装 OpenCV(使用.whl文件安装)。网上还有很多安装教程,比如:windows环境下的Anaconda安装与OpenCV机器视觉环境搭建、在Pycharm的环境下安装OpenCV
- 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 打开网页选择自己对应 Python 版本的 .whl 文件并下载至硬盘(.whl件是 python 的包文件,包含了 py 文件,以及经过编译的 pyd 文件,用于安装),版本对应关系如下图所示。
注意
:这里需要注意版本对应,由于我的电脑为 64bit 系统,且安装的 Python 是 3.8 版本的,所以,我选择其中的“opencv_python-4.5.3-cp38-cp38-win_amd64.whl
”文件进行下载。
- 下载之后可以从目录里看到:
2.2 OpenCv安装
- 使用 “win+R” 键打开 cmd 命令行窗口,先输入上一步下载好的 .whl 文件的所在磁盘,在用“cd+目录地址”打开文件所在目录,接着输入下面这行命令:
pip install opencv_python-4.5.3-cp38-cp38-win_amd64.whl
现在就开始安装,等待安装结束即可。
2.3 测试安装
- 打开开始菜单,找到程序里的 Spyder 并启动
Spyder 的安装涉及到 Python 环境的整体配置,没有的可以可以参考我的另一条博文:Python环境资源配置,最好建立好整个环境。
- 在代码编辑区输入如下代码:
mport cv2img = cv2.imread("E:/Pictures/cat.jpg", 1)
cv2.imshow("1", img)
cv2.waitKey()
注意
:代码第二行中的目录位置是自己电脑中的一张图片位置,这里我用的是我电脑中的 cat.jpg 文件。
- 点击左上方的绿色运行按键,开始运行,可以看到代码通过 OpenCV 记录了图片的像素位置并重新展示了图片,说明此时 OpenCV 已经安装成功并能顺利使用。
3 使用OpenCV调用手机摄像头并实现人脸识别
3.1 手机上的准备
在手机上下载“IP 摄像头”,并安装。这里我在应用宝里下载了 IP 摄像头
打开软件,点击下方的“打开 IP 摄像头服务器”,会出现摄像头的局域网 IP 地址
注意
:此时我的电脑连接这手机热点,也可以手机跟电脑连接在同一个 WiFi 下,使得用局域网地址获取手机摄像头。
3.2 创建调用实现的代码
打开之前使用的 Spyder 软件并启动,点击如下图中的按键创建新的文件
在代码编辑区输入下面代码:
import cv2 as cv
#读取视频信息。
cap = cv.VideoCapture("http://admin:admin@192.168.43.1:8081/") #@前为账号密码,@后为ip地址
face_xml = cv.CascadeClassifier("haarcascade_frontalface_default.xml") #导入XML文件
while(cap.isOpened()):f,img = cap.read() #读取一帧图片gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) #转换为灰度图face = face_xml.detectMultiScale(gray,1.3,10) #检测人脸,并返回人脸位置信息for (x,y,w,h) in face:cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)cv.imshow("1",img)if cv.waitKey(1) & 0xFF == ord('q'):breakcap.release()
注意
:
① 第二句代码中的 admin 为我的 IP 摄像头用户名, admin 为我的IP摄像头密码,这个可以在手机APP的设置里查看和修改,代码中的要使用自己的用户名、密码。
② @后面的地址是局域网IP地址,这个在打开IP摄像头服务器之后的界面就能看到,也需要修改为自己的地址。
③ 代码的其他部分无需修改。
3.3 下载人脸检测xml文件
- 需要下载人脸模型库文件“ haarcascade_frontalface_default.xml ”,帮助摄像头获取的画面去对比。
可以通过百度网盘链接下载:https://pan.baidu.com/s/1fl0XbZi8m6e_qknhHYlmOw
提取码:luha - 下载成功后,将“haarcascade_frontalface_default.xml”文件放在上面的代码文件目录里
3.4 实验效果
- 回到 Spyder 软件,点击左上方的绿色运行按键,开始运行,便调出了手机摄像头,可以识别到我们的人脸,效果如下图:
可以看到,在人脸区域会自动出现蓝色的矩形框,说明能正常识别到人脸。
注意
:在手机摄像头人脸识别时,切记最好将眼镜、刘海等遮挡物去掉!!以便更好的识别。
4 实验分析
在使用 OpenCV 调用手机摄像头进行人脸识别的实验中,实验过程上并不难,就是操作比较复杂。Python+OpenCv 来实现摄像头人脸识别的原理是通过 Haar 特征选择,对人脸的特征数据进行提取,实现将人脸识别出来。在做的时候需要注意的细节也比较多,在最后的摄像头识别时,切记将眼镜等遮挡物拿掉,尽量露出完整脸部,不然会识别不成功,我就是因为这个出现一直识别不了的问题,耽误了很长时间,所以需要多注意。
5 总结
通过一个简单的人脸识别应用,了解 OpenCV 的运行环境和功能,对OpenCV 有了更深一步探索的好奇心,期待今后能更进一步学习和应OpenCV 完成深度识别检测。文章内容如有错误或疑问,欢迎读者评论区留言。
6 参考资料
1、windows环境下的Anaconda安装与OpenCV机器视觉环境搭建
2、基于OpenCV调用手机摄像头并实现人脸检测
Python+OpenCV 调用手机摄像头并实现人脸识别相关推荐
- 基于opencv第三方视觉库,通过内网IP调用手机摄像头,实现人脸识别与图形监测
1. 安装opencv视觉库 OpenCV 是一个开源的计算机视觉库,OpenCV 库用C语言和 C++ 语言编写,可以在 Windows.Linux.Mac OS X 等系统运行.同时也在积极开发 ...
- python+opencv调用手机摄像头
第一步: 下载一个工具:IP摄像头(app),Android,iOS都可以下载 应用宝直接搜索IP摄像头,如下图: 下载安装后,打开app,点击下方的打开IP摄像头服务器,确保手机和电脑处于同一局域网 ...
- Html5调用手机摄像头并实现人脸识别
需求 混合App开发,原生壳子+webApp,在web部分调用原生摄像头功能并且在网页指定区域显示摄像头内容,同时可以手动拍照并进行人脸识别,将识别结果显示在网页上. 技术栈 vue.Html5.vi ...
- OpenCV调用手机摄像头与人脸检测
文章目录 一.OpenCV机器视觉环境搭建 1. OpenCV下载 2. OpenCV安装 3. 安装测试 二.OpenCV调用摄像头及人脸检测 1. 调用电脑摄像头 2. 调用手机摄像头及人脸检测 ...
- python+opencv调用ip摄像头(基于RTSP实现)
python+opencv调用ip摄像头(基于RTSP实现) 采用RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,RTSP是TCP/IP协议体系中 ...
- 【计算机视觉 · OpenCV】使用 OpenCV 调用手机摄像头
一.前言 Droidcam 是一款可以将手机变成网络摄像头的工具,我们可以利用 Droidcam 让 OpenCV 拥有调用手机摄像头的能力. 二.步骤 2.1 安装 DroidCam 在手机和电脑上 ...
- opencv调用手机摄像头
第一步: 下载一个工具:IP摄像头(app),Android,iOS都可以下载 应用宝直接搜索IP摄像头,如下图: 下载安装后,打开app,点击下方的"打开IP摄像头服务器",确保 ...
- 用OpenCV调用手机摄像头
首先下载一个工具:IP摄像头(app),安卓,ios都能下载. 这里提安卓版的下载地址:http://app.mi.com/details?id=com.shenyaocn.android.WebCa ...
- python opencv调用笔记本摄像头 - python
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 通过查看书籍,自己总结了一下,怎样用python代码实现调用笔记本摄像头的功能. 这主要是通过opencv中cv2模块来 ...
最新文章
- 数据库SQL面试题七则
- 8、REVOKE:删除用户权限
- CodeForces - 1313B Different Rules(数学+思维)
- mysql 不同分区 同时insert_Mysql分区表的原理和优缺点
- ReentrantLock可重入锁使用及原理
- 苹果开发者修改团队名称_鼓励您的团队对项目进行更改的5步计划
- python——os模块获取绝对路径
- 基于scap的服务器安全基线核查设计与实现
- java好的代码_做java软件工程师,怎样才能写出好的代码?
- Kafka设计解析(三):Kafka High Availability (下)
- 山西等保测评机构项目测评收费价格标准参考
- 由磁场数据和加速度数据计算初始姿态角
- 春节钱包大流量奖励系统入账及展示的设计与实现
- 通俗易懂的讲讲TCP的三次握手
- Matlab ——旋转矩阵,四元数,欧拉角之间的转换
- 小数乘分数怎么算过程_小数乘以分数公开课教学设计
- 【重学计算机网络】DHCP IP的“孽缘“
- 计算机工程+cssci,XC中文学术期刊等级分类目录
- python实现 空间前方交会
- Django-模板 templates