Python+OpenCV+wifi模块摄像头实现人脸检测与识别

硬件: 配有摄像头的wifi模块实物图如下 该WiFi模块顾名思义会产生一个wifi,也就是局域网,电脑直接连接即可。

import cv2

cap = cv2.VideoCapture("http://192.168.1.1:8080/?action=stream")

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    xmlfile = C:\Users\13161\PycharmProjects\untitled1\venv\Lib\site-packages\cv2data\haarcascade_frontalface_default.xml

    face_cascade = cv2.CascadeClassifier(xmlfile)

    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.15,
        minNeighbors=5,
        minSize=(5, 5),
    )
    print("发现{0}个目标!".format(len(faces)))
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + w), (0, 255, 0), 2)

    cv2.imshow("frame", frame)
    # Display the resulting frame
    if cv2.waitKey(1) & 0xFF == ord(q):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

其中,须注意haarcascade分类器的路径的书写方式。如果不知道路径,可以在Pycharm中查看,如下图所示 选中分类器,单击右键可以copy其路径。 本人电脑copy下来的路径为:C:Users13161PycharmProjectsuntitled1venvLibsite-packagescv2datahaarcascade_frontalface_default.xml 将其改为:C:\Users\13161\PycharmProjects\untitled1\venv\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml 注意到没有,这里是两个"\“而不是一个”"

经验分享 程序员 微信小程序 职场和发展