一、手机app准备
我用的是华为手机,所以需要在百度上下IP摄像头这一个app,下载即可。  打开摄像头IP服务器,以获取摄像头IP地址。 

我这里是在同一个wifi下,用的局域网地址获取手机摄像头。
二、python+OpenCV实现
1、人脸检测
在jupyter下创建一个代码文件夹,放显示图片的代码。 键入代码如下:
import cv2
img = cv2.imread(r"E:\img.jpg", 1)
cv2.imshow("1", img)
cv2.waitKey()
上面的路径需要按照你自己的图片路径进行修改
运行代码:  显示效果如下: 
2、调用手机摄像头
下载人脸检测xml文件,并放在代码目录。
链接:https://pan.baidu.com/s/1wCXfeHVY84pKoLYHHnZazQ 提取码:sxsx
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()
注意:第三行代码 双引号里面的内容需要改为你自己的账号密码和IP地址。
在这里我用的是jupyter编译器,所以在anaconda里面打开jupyter,在练创建代码文件和刚才网盘下载的xml文件,显示结果如下:  运行代码程序:  在浏览器上输入你的IP地址,上图的局域网地址,这里我的局域网址是http://192.168.43.1:8081/ ,打开,即可看到实时视频,如下所示:  动画显示如下: 
四、总结
初次体验了一把opencv简单地视觉处理,显示图片与视频检测,能够简单地用jupyter和手机将视频进行实时监测,让自己进一步对监控等相关领域有了初步地了解。
五、参考资料
基于OpenCV调用手机摄像头并实现人脸检测
|