我在python中遇到了问题。我不知道为什么会这样。 它应该在“print('done')”行中完成。
以下是我的示例python代码。
def check_count(img, count):
global index_image_processing
detection_count = count
print ('index= ', index_image_processing)
print ('detection_count = ', detection_count)
if detection_count == 0:
index_image_processing += 1
print ('1-index= ', index_image_processing)
if index_image_processing <= 6:
pic_plate_detect(img)
else:
print ('Cannot find')
pic_name = 'Fail' + '.jpg'
print ('2-index= ', index_image_processing)
print ('detection_count=', detection_count)
elif detection_count == 1:
pic_name = 'single' + '.jpg'
print ('detection_count == 1')
elif detection_count >= 2:
pic_name = 'muti_result' + '.jpg'
print ('detection_count >= 2')
print pic_name
pic_path = './' + pic_name
cv2.imwrite(pic_path, img)
print ('done')
而且,我的结果如下:
('index= ', 1)
('detection_count=', 1)
detection_count == 1
single.jpg
done
('2-index= ', 1)
('detection_count=', 0)
Traceback (most recent call last):
...
UnboundLocalError: local variable 'pic_name' referenced before assignment
答案 0 :(得分:0)
您尝试使用pic_name
对其进行连接(即pic_name = 'single' + '.jpg'
)而不先将其初始化。与值赋值(即pic_name = 'single'
)相反,这在python中是不允许的。
答案 1 :(得分:0)
pic_name永远不会被创建,但您尝试无条件地打印它。 像这样初始化它:
pic_name = None
然后运行您的逻辑并仅在不是None