• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • openmv进行十字路口检测,判断两直线是否相交



    • 为什么会提示TypeError: object ‘int’ isn’t a tuple or list
      提示错误的时候光标定位在img = sensor.snapshot().binary(line_threshold)

      import sensor, image
      
      # 初始化摄像头
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      line_threshold = (30, 100)
      
      while True:
          img = sensor.snapshot().binary(line_threshold)
          # 检测直线
          lines = img.find_lines(threshold = 1000, theta_margin = 25, rho_margin = 25)
          for line in lines:
              img.draw_line(line.line(), color=127)
              
          # 检测十字
          cross_detected = False
          for i in range(len(lines)):
              for j in range(i+1, len(lines)):
                  if abs(lines[i].theta() - lines[j].theta()) < 30:
                      continue
                  intersection = lines[i].intersection(lines[j])
                  if intersection:
                      x, y = int(intersection.x()), int(intersection.y())
                      img.draw_cross(x, y)
                      cross_detected = True
          # 输出是否检测到十字
          print("Cross detected: ", cross_detected)
      


    • 准确的说光标定位在img = sensor.snapshot().binary(line_threshold)的后面



    • 12行,改为:img = sensor.snapshot().binary([line_threshold])