星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • AttributeError: 'NoneType' object has no attribute 'theta'



    • THRESHOLD = (153, 255) # Grayscale threshold for dark things...
      
      #设置是否使用img.binary()函数进行图像分割
      BINARY_VISIBLE = True # 首先执行二进制操作,以便您可以看到正在运行的线性回归
      
      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QQVGA)
      sensor.skip_frames(time = 2000)
      clock = time.clock()
      
      while(True):
          clock.tick()
          img = sensor.snapshot().binary([THRESHOLD]) if BINARY_VISIBLE else sensor.snapshot()
          singleline_check = img.get_regression([(255,255) if BINARY_VISIBLE else THRESHOLD],robust = True)
      
          if (singleline_check): img.draw_line(singleline_check.line(), color = 127)
          print("FPS %f, mag = %s" % (clock.fps(), str(singleline_check.magnitude()) if (singleline_check) else "N/A"))
          print(singleline_check.theta(),singleline_check.rho())
      


    • 报错指向最后一行代码,有的时候程序能够正常运行,可以输出最后一行代码的两个值



    • 这个提示很清楚了,因为singleline_check有时候是None,所以改一下代码,加一个判断就行:

      THRESHOLD = (153, 255) # Grayscale threshold for dark things...
      
      #设置是否使用img.binary()函数进行图像分割
      BINARY_VISIBLE = True # 首先执行二进制操作,以便您可以看到正在运行的线性回归
      
      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QQVGA)
      sensor.skip_frames(time = 2000)
      clock = time.clock()
      
      while(True):
          clock.tick()
          img = sensor.snapshot().binary([THRESHOLD]) if BINARY_VISIBLE else sensor.snapshot()
          singleline_check = img.get_regression([(255,255) if BINARY_VISIBLE else THRESHOLD],robust = True)
      
          if (singleline_check):
              img.draw_line(singleline_check.line(), color = 127)
              print(singleline_check.theta(),singleline_check.rho())
              print("mag = %s" % str(singleline_check.magnitude()))
          print("fps:", clock.fps())
          
      


    • @kidswong999 原来如此,谢谢!