解决 Python 中的 UnboundLocalError: local variable 'face' referenced before assignment 错误
这个错误通常是由于在使用局部变量之前未初始化该变量造成的。在你的代码中,当len(rect) == 0时,face变量没有被初始化就被引用了,导致报错。你可以在此之前为face变量赋一个默认值,例如:
face = None
if len(rect) == 0:
txt = 'no face!'
cv2.putText(img1, txt, (10, 20), cv2.FONT_HERSHEY_COMPLEX, 1, (128, 128, 0), 2)
if not rect is None:
for (x, y, w, h) in rect:
face = gray[y:y + w, x:x + h].astype(np.float32) # 数值转换
face = Tensor(face.transpose().astype(np.float32) / 255.)
face = Tensor(face)
cv2.rectangle(img1, (x, y), (x + w, y + h), (0, 255, 0), 2) # 画出矩形框
output = network(face)
这样就可以避免这个错误了。
原文地址: https://www.cveoy.top/t/topic/jqyl 著作权归作者所有。请勿转载和采集!