【发布时间】:2020-10-26 03:57:09
【问题描述】:
目前,我正在做最后的项目。但我已经走投无路了,因为我不知道该做什么了。
def draw_boundary(img, classifier, ScaleFactor, minNeighbors, color, text, clf):
gray_image = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
features = classifier.detectMultiScale(gray_image, ScaleFactor, minNeighbors)
coords = []
for(x,y,w,h) in features:
cv.rectangle(img, (x,y), (x+w, y+h), color, 2)
id, pred = clf.predict(gray_image[y:y+h, x:x+w])
confidence = int(100*(1-pred/300))
if confidence > 80:
if id == 1:
cv.putText(img,c_name + ": Match",(x, y-5),
cv.FONT_HERSHEY_SIMPLEX, 0.8, color, 1, cv.LINE_AA)
else:
cv.putText(img,"UNKNOWNS",(x, y-5),
cv.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 1, cv.LINE_AA)
break
coords = [x,y,w,h]
return coords
def recognize(img, clf, faceCascade):
coords = draw_boundary(img, faceCascade, 1.1, 10, (255, 255, 255), "Face", clf)
return img
while True:
ret, img = video_capture.read()
img = recognize(img, clf, faceCascade)
cv.imshow("face detection", img)
wk = cv.waitKey(1)
if wk == 13:
break
我希望我的代码在图像或在这种情况下面部匹配时关闭,寡妇会自动关闭而不使用等待键。这也是我第一次在 StackOverflow 上向人们提问,所以我可以为我的问题提供一些你程序员的知识吗?
【问题讨论】:
-
您尝试过什么解决问题的方法?你在哪里卡住了?
-
程序可以运行,但是当我尝试将 'break' 放在 'id == 1' 下面时,cam 的窗口仍在循环。我想要的是当面部匹配时,它立即关闭
-
@THQ07 提示:如果您在帖子标题中描述问题,例如“OpenCV 窗口关闭太快”并且提供问题的最小示例,您将获得更好的帮助 - 请参阅 @987654321 @我认为
while True: cv.imshow("face detection", any_img) wk = cv.waitKey(1)会出现与您发布的长程序相同的意外行为。做这项工作首先是你帮助别人更好更快地帮助你
标签: python opencv lbph-algorithm