Python+OpenCV 调用手机摄像头并实现人脸识别

这篇具有很好参考价值的文章主要介绍了Python+OpenCV 调用手机摄像头并实现人脸识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章内容
1、windows 环境下安装 OpenCV 机器视觉环境搭建;
2、基于通过 Python+OpenCV调用手机摄像头并实现人脸检测识别。

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 文件,用于安装),版本对应关系如下图所示。
    Python+OpenCV 调用手机摄像头并实现人脸识别

注意:这里需要注意版本对应,由于我的电脑为 64bit 系统,且安装的 Python 是 3.8 版本的,所以,我选择其中的“opencv_python-4.5.3-cp38-cp38-win_amd64.whl”文件进行下载。

  • 下载之后可以从目录里看到:
    Python+OpenCV 调用手机摄像头并实现人脸识别

2.2 OpenCv安装

  • 使用 “win+R” 键打开 cmd 命令行窗口,先输入上一步下载好的 .whl 文件的所在磁盘,在用“cd+目录地址”打开文件所在目录,接着输入下面这行命令:
pip install opencv_python-4.5.3-cp38-cp38-win_amd64.whl

现在就开始安装,等待安装结束即可。Python+OpenCV 调用手机摄像头并实现人脸识别

2.3 测试安装

  • 打开开始菜单,找到程序里的 Spyder 并启动
    Python+OpenCV 调用手机摄像头并实现人脸识别

Spyder 的安装涉及到 Python 环境的整体配置,没有的可以可以参考我的另一条博文:Python环境资源配置,最好建立好整个环境。

  • 在代码编辑区输入如下代码:
mport cv2

img = cv2.imread("E:/Pictures/cat.jpg", 1)
cv2.imshow("1", img)
cv2.waitKey()

注意:代码第二行中的目录位置是自己电脑中的一张图片位置,这里我用的是我电脑中的 cat.jpg 文件。

  • 点击左上方的绿色运行按键,开始运行,可以看到代码通过 OpenCV 记录了图片的像素位置并重新展示了图片,说明此时 OpenCV 已经安装成功并能顺利使用。
    Python+OpenCV 调用手机摄像头并实现人脸识别

3 使用OpenCV调用手机摄像头并实现人脸识别

3.1 手机上的准备

  • 在手机上下载“IP 摄像头”,并安装。这里我在应用宝里下载了 IP 摄像头
    Python+OpenCV 调用手机摄像头并实现人脸识别

  • 打开软件,点击下方的“打开 IP 摄像头服务器”,会出现摄像头的局域网 IP 地址
    Python+OpenCV 调用手机摄像头并实现人脸识别

注意:此时我的电脑连接这手机热点,也可以手机跟电脑连接在同一个 WiFi 下,使得用局域网地址获取手机摄像头。

3.2 创建调用实现的代码

  • 打开之前使用的 Spyder 软件并启动,点击如下图中的按键创建新的文件
    Python+OpenCV 调用手机摄像头并实现人脸识别

  • 在代码编辑区输入下面代码:

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'):
        break

cap.release()

注意
① 第二句代码中的 admin 为我的 IP 摄像头用户名, admin 为我的IP摄像头密码,这个可以在手机APP的设置里查看和修改,代码中的要使用自己的用户名、密码。
② @后面的地址是局域网IP地址,这个在打开IP摄像头服务器之后的界面就能看到,也需要修改为自己的地址。
③ 代码的其他部分无需修改。

3.3 下载人脸检测xml文件

  • 需要下载人脸模型库文件“ haarcascade_frontalface_default.xml ”,帮助摄像头获取的画面去对比。
    可以通过百度网盘链接下载:链接:https://pan.baidu.com/s/10iUbJRUA_bdt-zICEjhcAw 密码:qve4

  • 下载成功后,将“haarcascade_frontalface_default.xml”文件放在上面的代码文件目录里
    Python+OpenCV 调用手机摄像头并实现人脸识别

3.4 实验效果

  • 回到 Spyder 软件,点击左上方的绿色运行按键,开始运行,便调出了手机摄像头,可以识别到我们的人脸,效果如下图:
    Python+OpenCV 调用手机摄像头并实现人脸识别
    可以看到,在人脸区域会自动出现蓝色的矩形框,说明能正常识别到人脸。

注意:在手机摄像头人脸识别时,切记最好将眼镜、刘海等遮挡物去掉!!以便更好的识别。

4 实验分析

在使用 OpenCV 调用手机摄像头进行人脸识别的实验中,实验过程上并不难,就是操作比较复杂。Python+OpenCv 来实现摄像头人脸识别的原理是通过 Haar 特征选择,对人脸的特征数据进行提取,实现将人脸识别出来。在做的时候需要注意的细节也比较多,在最后的摄像头识别时,切记将眼镜等遮挡物拿掉,尽量露出完整脸部,不然会识别不成功,我就是因为这个出现一直识别不了的问题,耽误了很长时间,所以需要多注意。

5 总结

通过一个简单的人脸识别应用,了解 OpenCV 的运行环境和功能,对OpenCV 有了更深一步探索的好奇心,期待今后能更进一步学习和应OpenCV 完成深度识别检测。文章内容如有错误或疑问,欢迎读者评论区留言。

6 参考资料

1、windows环境下的Anaconda安装与OpenCV机器视觉环境搭建
2、基于OpenCV调用手机摄像头并实现人脸检测文章来源地址https://www.toymoban.com/news/detail-485518.html

到了这里,关于Python+OpenCV 调用手机摄像头并实现人脸识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python实现opencv调用摄像头

    Python的opencv库提供了一种简单而高效的方法来处理图像,包括从摄像头中读取视频流。在本篇技术博客中,我们将介绍如何使用Python的opencv库调用IP摄像头和本地摄像头的代码。 首先,我们需要安装Python的opencv库,可以使用pip install opencv-python命令进行安装。 在使用IP摄像头之

    2024年02月11日
    浏览(45)
  • openCV 多线程调用多个海康威视摄像头(避免画面不同步),进行人脸识别

    1、创建多个线程来拉取不同的视频流,不使用多线程的话,所有的视频流就在排一个队,会出现画面不同步的情况 代码: 2、使用numpy将多个画面放在同一个frame中,图像就是矩阵,numpy是用来处理矩阵的类 代码:  进行人脸识别,网不好帧率太低

    2024年04月25日
    浏览(98)
  • 【计算机视觉 · OpenCV】使用 OpenCV 调用手机摄像头

    Droidcam 是一款可以将手机变成网络摄像头的工具,我们可以利用 Droidcam 让 OpenCV 拥有调用手机摄像头的能力。 2.1 安装 DroidCam 在手机和电脑上分别安装 DroidCam 的客户端和服务端 下载地址:https://pan.baidu.com/s/1DrBn3P1Bx-SXa4d6oziifA?pwd=gr1o 提取码:gr1o 2.2 测试连接状态 手机和电脑需

    2024年02月09日
    浏览(47)
  • Qt开发_调用OpenCV(4.x)完成人脸检测并绘制马赛克(摄像头实时数据)

    这个基于Qt和OpenCV的人脸检测和人脸打码项目是通过实时视频流中的人脸识别来保护隐私。 该项目目的是保护隐私并确保人脸数据安全。在某些情况下,使用实时视频流进行人脸检测和识别可能涉及对个人隐私的侵犯。通过在图像中打码人脸区域,可以避免未经许可的人脸出

    2024年02月06日
    浏览(53)
  • Python调用手机摄像头

    1、在手机上安装app:IP摄像头 2、调用代码(前提:电脑连接手机热点) 2.1、如果没有cv2安装包,则需要安装opencv-python库(功能:数字图像处理、人脸检测、视频捕捉,图像旋转等) 和poencv-contrib-python库(功能:图像拼接、CNN人脸识别、特征检测、背景分割,OCR等)。注意

    2024年02月12日
    浏览(53)
  • 毕业设计——基于python-contrib-opencv的人脸识别及检测系统设计与实现(实现电脑端摄像头读取视频,实时人脸录入,人脸检测,人脸识别等功能)

    如需完整源码,可以联系博主获取 基于python-contrib-opencv,dlib,pyqt5。能够实现电脑端摄像头读取视频,实时人脸录入,人脸检测,人脸识别等功能。 一、引言 随着计算机视觉和人工智能技术的不断发展,人脸识别技术已成为智能安防、身份验证等领域的关键技术之一。而基于

    2024年04月12日
    浏览(47)
  • Python进阶,使用 opencv 调用摄像头进行拍照

             opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失败。推荐使用离线模式来安装 opencv 模块。 下载完安装包后,使用如下命令进行安装: D: pip install opencv

    2024年02月11日
    浏览(66)
  • h5端调用手机摄像头实现扫一扫功能

     一、前言         最近有遇到一个需求,在h5浏览器中实现扫码功能,其本质便是打开手机摄像头定时拍照,特此做一个记录。主要技术栈采用的是vue2,使用的开发工具是hbuilderX。         经过测试发现部分浏览器并不支持打开摄像头,测试了果子,华子和米,发现

    2024年03月14日
    浏览(84)
  • python opencv 调用摄像头失败问题的解决 Windows

    省流: 内含 Python Opencv 双目相机拍照代码(手动 or 自动),可自取; 如果你的 cv2.VideoCapture() 函数卡住但不报错,打开 Windows “相机”应用可以正常看到摄像头画面,且能够正常用 cv2.imshow() 打开图像,请继续阅读。 这个学期选修了方璐老师的媒体与认知课程,期末的 Fin

    2024年02月05日
    浏览(45)
  • 【深度学习】python使用opencv调用摄像头拍摄并保存图片

    打开pycharm,新建一个camerm.py文件,把下面代码复制粘贴进去就可以了。 需要安装两个库:pip install opencv-python;pip install numpy

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包