为什么提示‘red_ratio' isn't defined
-
请在这里粘贴代码 ```import sensor import image import time # 定义颜色范围 # 这里定义红色的 HSV 值,可以根据实际情况进行调整 RED_THRESHOLD = (0, 100, 100, 127, 0, 127) # 初始化摄像头 sensor.reset() # 初始化传感器 sensor.set_pixformat(sensor.RGB565) # 设置像素格式 sensor.set_framesize(sensor.QVGA) # 设置帧大小 sensor.skip_frames(time=2000) # 等待传感器稳定 clock = time.clock() # 创建时钟对象 while True: clock.tick() # 更新时钟 img = sensor.snapshot() # 捕获图像 # 查找红色区域 blobs = img.find_blobs([RED_THRESHOLD], pixels_threshold=100, area_threshold=100) # 如果找到红色区域 if blobs: for blob in blobs: # 计算红色区域占整个图像的比例 area = blob.pixels() # 红色区域的像素数 total_area = img.width() * img.height() # 图像的总像素数 red_ratio = (area / total_area) * 100 # 计算红色比例 # 识别草莓成熟度 if red_ratio > 30: maturity = "成熟" elif red_ratio > 10: maturity = "半成熟" else: maturity = "未成熟" # 在图像上绘制红色区域和比例信息 img.draw_rectangle(blob.rect()) # 绘制红色区域的矩形 img.draw_string(blob.x(), blob.y(), f"{maturity} ({red_ratio:.2f}%)", color=(255, 255, 255)) # 显示图像 print(f"Red Ratio: {red_ratio:.2f}%") # 打印红色比例信息
-
原因:当第一次识别就没有blob的时候,26行到42行的代码就不会运行,这时red_ratio就不存在。
解决办法:if blobs:上面加一句red_ratio=0