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



    • #通过检测两直线是否相交判断十字路口
      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      line_threshold = (30, 100)
      noc = 0   #number of crossroad
      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
                      noc = noc+1
          # 输出是否检测到十字
          print("Cross detected: ", cross_detected)
          print(noc)
      

      提示AttributeError: ‘line’ object has no attribute ‘intersection’
      光标位置intersection = lines[i].intersection(lines[j])
      openmv里有没有类似intersection()获取交叉点的方法呢



    • 目前没有这个函数,需要自己计算。