2

我正在运行人脸识别代码,我的问题是运行代码后,我的网络摄像头没有关闭。绿灯仍然激活,为了关闭它,我必须关闭我的电脑才能让凸轮正常。你有什么建议,为什么会这样?

from imutils.video import VideoStream
import argparse, imutils, time, cv2, os, sys
import time
import smtplib, os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.message import Message
from email.mime.audio import MIMEAudio
from email import encoders


   detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# vs = VideoStream(src=0).start()
vs = VideoStream
vs(src=0).start()
# time.sleep(2.0)
total = 0

while True:
    frame = vs.read()
    orig = frame.copy()
    frame = imutils.resize(frame, width=600)
    rects = detector.detectMultiScale(
        cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY), scaleFactor=1.1, 
        minNeighbors=5, minSize=(30, 30))
    for (x, y, w, h) in rects:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
        if rects is not None and total <5:
            p="/Users/Desktop/atentie/mail/"+str(total)+".png"
            cv2.imwrite(p, orig)
            total+=1

    break   

cv2.destroyAllWindows()
vs(src=0).stop()
time.sleep(5)
4

1 回答 1

0

VideoStreamfrom imutilslibrary 是一个类对象,所以当你将它分配给你时,vs你应该像对待它一样对待它。

这是修复:

#--- import libraries ---
from imutils.video import VideoStream

vs = VideoStream
#--- start the video stream ---
vs(src=0).start()

#--
# rest of your program 
#--

#--- stop the video stream ---
vs(src=0).stop()
于 2018-07-11T21:02:39.783 回答