用于检测对象的我的OpenCV(Python)代码:
import ...
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap1 = cv2.VideoCapture(1)
while True:
ret1, img1 = cap1.read()
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x1, y1, w1, h1) in faces:
if x1 >0:
detect_face1 = x1
print 'face distance Camera 1: ', detect_face1
else:
pass
调试器显示faces
为type tuple: ()
,可能显示为if x1 >0: NameError: name 'x1' is not defined
。因为如果在相机中检测到面部,则faces
是具有x1值>的阵列。 0.我知道这可能是非常简单的修复,但任何帮助都表示赞赏。
答案 0 :(得分:-1)
元组faces
为空,结果为NameError
。
if faces==0:
pass
else:
detect_face=x1
解决了这个问题。