@kidswong999 大佬,但是还是有问题
3
3i5h
@3i5h
0
声望
4
楼层
271
资料浏览
0
粉丝
1
关注
3i5h 发布的帖子
-
RE: 出现错误:NameError:local variable referenced before assignment
import sensor, image, time black_threshold = ( -15, 25, -26, 14, -15, 25) white_threshold = ( 45, 86, -26, 11, -15, 25) sensor.reset() # 初始化摄像头传感器 sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图 sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率 sensor.skip_frames(10) #跳过几帧,让新的设置生效。 sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭 clock = time.clock() # 追踪帧率,影响不大 #__________________________________________________________________ #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个 def find_max(blobs): max_size=0 for blob in blobs: if blob[2]*blob[3] > max_size: max_blob=blob max_size = blob[2]*blob[3] return max_blob #__________________________________________________________________ while(True): clock.tick() # 跟踪快照()之间经过的毫秒数。 img = sensor.snapshot().lens_corr(1.8) # 截取一张图片 left_roi = (20,20,160,80) blobs = img.find_blobs([black_threshold],roi=left_roi) #识别黑色阈值 if blobs: max_blob = find_max(blobs) #调用上面自定义函数,找到最大色块 #img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2) max_blob.x() #返回识别区域左上角的x坐标 max_blob.y() #返回识别区域左上角的y坐标 max_blob.w() #返回识别区域的宽度 max_blob.h() #返回识别区域的长度 print(max_blob.x(),max_blob.y()) ''' right_roi = (30,10,90,90) blobs = img.find_blobs([white_threshold],roi=right_roi) #识别黑色阈值 max_blobs = find_max(blobs) #调用上面自定义函数,找到最大色块 #img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2) max_blobs.x() #返回识别区域左上角的x坐标 max_blobs.y() #返回识别区域左上角的y坐标 max_blobs.w() #返回识别区域的宽度 max_blobs.h() #返回识别区域的长度 '''
但是我又出现这个错误了
-
出现错误:NameError:local variable referenced before assignment
import sensor, image, time black_threshold = ( -15, 25, -26, 14, -15, 25) white_threshold = ( 45, 86, -26, 11, -15, 25) sensor.reset() # 初始化摄像头传感器 sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图 sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率 sensor.skip_frames(10) #跳过几帧,让新的设置生效。 sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭 clock = time.clock() # 追踪帧率,影响不大 #__________________________________________________________________ #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个 def find_max(blobs): max_size=0 for blob in blobs: if blob[2]*blob[3] > max_size: max_blob=blob max_size = blob[2]*blob[3] return max_blob #__________________________________________________________________ while(True): clock.tick() # 跟踪快照()之间经过的毫秒数。 img = sensor.snapshot().lens_corr(1.8) # 截取一张图片 left_roi = (20,20,160,80) blobs = img.find_blobs([black_threshold],roi=left_roi) #识别黑色阈值 max_blob = find_max(blobs) #调用上面自定义函数,找到最大色块 img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2) max_blob.x() #返回识别区域左上角的x坐标 max_blob.y() #返回识别区域左上角的y坐标 max_blob.w() #返回识别区域的宽度 max_blob.h() #返回识别区域的长度 print(max_blob.x(),max_blob.y()) right_roi = (30,10,90,90) blobs = img.find_blobs([white_threshold],roi=right_roi) #识别黑色阈值 max_blobs = find_max(blobs) #调用上面自定义函数,找到最大色块 img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2) max_blobs.x() #返回识别区域左上角的x坐标 max_blobs.y() #返回识别区域左上角的y坐标 max_blobs.w() #返回识别区域的宽度 max_blobs.h() #返回识别区域的长度 print(max_blobs.x(),max_blobs.y())