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



    • 请问双实线和单实线在识别的时候有什么区别呢,我怎样才能保证在识别双实线的时候不被单实线干扰呢?谢谢各位了!!(教程的识别线段和识别直线我都看了,但是我没看出来咋能区分)



    • 没有区别,双线和单线在get_regression算法里面完全一样,不需要区分



    • 大神您好,关键是我想区分出来啊?我该咋办!!!!!



    • 加一个直线检测函数,判断前面有几条线。

      http://book.openmv.cc/example/09-Feature-Detection/find-line-segments.html



    • @yuan 大神您好,我上网查了半天直线检测函数,但是都没找到适合咱们用的,并且能找到判断是几条线的程序,我现在识别程序用的是下面这个程序,能准确地找到我想要的线,但是它找的太多了,随便什么东西都能识别上,同时也没法判断线的区别,请问我该咋办??

      # 识别直线例程
      #
      # 这个例子展示了如何在图像中查找线条。对于在图像中找到的每个线对象,
      # 都会返回一个包含线条旋转的线对象。
      
      # 注意:线条检测是通过使用霍夫变换完成的:
      # http://en.wikipedia.org/wiki/Hough_transform
      # 请阅读以上关于“theta”和“rho”的更多信息。
      
      # find_lines()找到无限长度的线。使用find_line_segments()
      # 来查找非无限线。
      
      enable_lens_corr = False # turn on for straighter lines...
      
      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565) # grayscale is faster
      sensor.set_framesize(sensor.QQVGA)
      sensor.skip_frames(time = 2000)
      clock = time.clock()
      
      # 所有的线对象都有一个`theta()`方法来获取它们的旋转角度。
      # 您可以根据旋转角度来过滤线条。
      
      min_degree = 0
      max_degree = 179
      
      # 所有线段都有 `x1()`, `y1()`, `x2()`, and `y2()` 方法来获得他们的终点
      # 一个 `line()` 方法来获得所有上述的四个元组值,可用于 `draw_line()`.
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          if enable_lens_corr: img.lens_corr(1.8) # for 2.8mm lens...
      
          # `threshold` controls how many lines in the image are found. Only lines with
          # edge difference magnitude sums greater than `threshold` are detected...
      
          # `threshold`控制从霍夫变换中监测到的直线。只返回大于或等于阈值的
          # 直线。应用程序的阈值正确值取决于图像。注意:一条直线的大小是组成
          # 直线所有索贝尔滤波像素大小的总和。
      
          # `theta_margin`和`rho_margin`控件合并相似的直线。如果两直线的
          # theta和ρ值差异小于边际,则它们合并。
      
          for l in img.find_lines(threshold = 1000, theta_margin = 25, rho_margin = 25):
              if (min_degree <= l.theta()) and (l.theta() <= max_degree):
                  img.draw_line(l.line(), color = (255, 0, 0))
                  # print(l)
      
          print("FPS %f" % clock.fps())
      
      # About negative rho values:
      #
      # A [theta+0:-rho] tuple is the same as [theta+180:+rho].
      


    • 我上面发给你的链接不就是线段检测的吗。。。。。



    • @yuan 请问大神,判断前面有几条线的语句该咋写啊?我PYTHON基础比较差,麻烦您了!