我正在运行一个人脸识别代码,我的问题是在运行代码后,我的摄像头无法关闭。绿灯仍然是激活的,为了关闭它,我必须关闭我的计算机才能使凸轮ok。你有什么建议,为什么会这样?
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)
发布于 2018-07-12 05:02:40
来自imutils
库的VideoStream
是一个类对象,所以当你把它赋给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()
https://stackoverflow.com/questions/51293754
复制相似问题