准备工作:
- 带摄像头的安卓手机一部
- 模拟相机软件:Iriun 、DroidCam 、IP摄像头
- python+opencv
一、Iriun
1、分别在PC和手机上安装
2、手机和PC在同一个局域网
3、分别打开PC和手机端软件,电脑端就可以使用手机相机
二、 DroidCam
1、安装软件
2、打开软件
3、手机和PC在同一个局域网
4、python 打开手机相机
import cv2
url = "http://192.168.1.20:4747/video"
cap = cv2.VideoCapture(url)
while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()
# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
三、IP摄像头
通过局域网
import cv2
url = "http://192.168.1.20:8081/video"
cap = cv2.VideoCapture(url)
while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()
# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
通过RTSP 人脸识别
import cv2
# 加载人脸检测器模型
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
url = 'rtsp://:@192.168.1.19:8554/live'
# 创建一个VideoCapture对象,用于读取视频流
cap = cv2.VideoCapture(url)
# 循环读取视频帧并进行人脸检测
while True:
# 读取视频帧
ret, frame = cap.read()
# 将视频帧转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 在视频帧中标记人脸
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
# 在窗口中显示视频帧
cv2.imshow("IP Camera - Face Detection", frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放VideoCapture对象和窗口
cap.release()
cv2.destroyAllWindows()