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



    • import sensor, image, time
      from machine import UART
      from pyb import UART
      from pyb import Pin, Timer
      def find_max_circle(circles):
          max_size = 0
          for circle in circles:
              if circle.r()>max_size:
                  max_circle = circle
                  max_size = circle.r()
                  return max_circle
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 500)
      sensor.set_auto_gain(False)
      sensor.set_hmirror(True)    #水平方向翻转
      sensor.set_vflip(True)  #垂直方向翻转
      # 50kHz pin6 timer2 channel1
      light = Timer(2, freq=50000).channel(1, Timer.PWM, pin=Pin("P6"))
      light.pulse_width_percent(100) # 控制亮度 0~100
      uart = UART(3, 115200)#P4-TX P5-RX
      clock = time.clock()
      rw=0
      x=0
      y=0
      data=([0xFE,0xE0F,x,y,rw])
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          img.lens_corr(1.6)
      
          for code in img.find_qrcodes():
              img.draw_rectangle(code.rect(), color = (255, 0, 0))
              rw=int(code.payload())
              data=bytearray([0xFE,0xE0,x,y,rw])
              uart.write(data)
              print(rw,data)
          circles = img.find_circles(x_stride=5, y_stride=1, threshold = 4000, x_margin = 20, y_margin = 20, r_margin =20,
                      r_min =6, r_max = 100, r_step = 2)
          if circles:
              max_circle = find_max_circle(circles)   #找到最大的圆
              area = (max_circle.x()-max_circle.r(), max_circle.y()-max_circle.r(), 2*max_circle.r(), 2*max_circle.r())
              img.draw_rectangle(area, color = (250, 0, 0))
              x=int(max_circle.x())
              y=int(max_circle.y())
              data=bytearray([0xFE,0xE0,x,y,rw])
              uart.write(data)
              print(x,y,data)
      


    • 解决不了,这两个算法都很耗时。