• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 为什么提示‘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}%")  # 打印红色比例信息
      
      

      0_1728870991862_微信图片_20241014095617.png



    • 原因:当第一次识别就没有blob的时候,26行到42行的代码就不会运行,这时red_ratio就不存在。
      解决办法:if blobs:上面加一句red_ratio=0