OpenCV调用手机摄像头与人脸检测

目录

  • 一、手机app准备
  • 二、python+OpenCV实现
    • 1、人脸检测
    • 2、调用手机摄像头
  • 四、总结
  • 五、参考资料

一、手机app准备

我用的是华为手机,所以需要在百度上下IP摄像头这一个app,下载即可。
OpenCV调用手机摄像头与人脸检测_第1张图片
打开摄像头IP服务器,以获取摄像头IP地址。
OpenCV调用手机摄像头与人脸检测_第2张图片

OpenCV调用手机摄像头与人脸检测_第3张图片

我这里是在同一个wifi下,用的局域网地址获取手机摄像头。

二、python+OpenCV实现

1、人脸检测

在jupyter下创建一个代码文件夹,放显示图片的代码。
键入代码如下:

import cv2
img = cv2.imread(r"E:\img.jpg", 1)
cv2.imshow("1", img)
cv2.waitKey()

上面的路径需要按照你自己的图片路径进行修改

运行代码:
OpenCV调用手机摄像头与人脸检测_第4张图片
显示效果如下:
OpenCV调用手机摄像头与人脸检测_第5张图片

2、调用手机摄像头

下载人脸检测xml文件,并放在代码目录。

链接:https://pan.baidu.com/s/1wCXfeHVY84pKoLYHHnZazQ
提取码:sxsx

import cv2 as cv
#读取视频信息。
cap = cv.VideoCapture("http://admin:[email protected]: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()

注意:第三行代码 双引号里面的内容需要改为你自己的账号密码和IP地址。

在这里我用的是jupyter编译器,所以在anaconda里面打开jupyter,在练创建代码文件和刚才网盘下载的xml文件,显示结果如下:
OpenCV调用手机摄像头与人脸检测_第6张图片
运行代码程序:
OpenCV调用手机摄像头与人脸检测_第7张图片
在浏览器上输入你的IP地址,上图的局域网地址,这里我的局域网址是http://192.168.43.1:8081/,打开,即可看到实时视频,如下所示:
OpenCV调用手机摄像头与人脸检测_第8张图片
动画显示如下:

四、总结

初次体验了一把opencv简单地视觉处理,显示图片与视频检测,能够简单地用jupyter和手机将视频进行实时监测,让自己进一步对监控等相关领域有了初步地了解。

五、参考资料

基于OpenCV调用手机摄像头并实现人脸检测

你可能感兴趣的:(opencv,opencv,计算机视觉,python)