gpt4 book ai didi

python - Python 中的名称错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:10 25 4
gpt4 key购买 nike

尝试在 cmd 上运行 Python 中的 OpenCV 项目时,我遇到了 NameError: name 'eyes' not found。我正在使用 Python 2.7 和 OpenCV 2.4.13,我认为这不是问题。

import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

cap = cv2.VideoCapture(1)

while True:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for(x,y,w,h) in faces:
cv2.reactangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for(ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color, (ex, ey), (ex+ew,ey+eh), (0,255,0), 2)

cv2.imshow('img',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
break

cap.release()
cv2.destroyAllWindows()

错误:

File "detect.py" , line 19, in
for(ex,ey,ew,eh) in eyes:
NameError: name 'eyes' is not defined

最佳答案

缩进问题,就像this one :

当您离开 faces 循环时,

eyes 超出范围。

while True:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for(x,y,w,h) in faces:
cv2.reactangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
# this one should be inside the 'faces' loop
for(ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color, (ex, ey), (ex+ew,ey+eh), (0,255,0), 2)

cv2.imshow('img',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
break

关于python - Python 中的名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39395567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com