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



    • import sensor, image, time, math
      from pyb import UART
      from pyb import LED
      
      led = LED(3)
      
      
      uart = UART(1, 19200)
      uart.init(115200,bits=8,parity=None,stop=1)
      
      
      thresholds = [(23, 90, -62, -5, 9, 68), #绿色
                    (10,70, -5, 37, -71, -30),#蓝色
                    (0, 15, -19, 2, 2, 21),# 黑色
                    (0, 100, -128, 127, -128, 127)]#全色
      
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 200)
      sensor.set_auto_gain(False)
      sensor.set_auto_whitebal(False)
      clock = time.clock()
      
      
      def find_max(blobs):
          max_size=0
      
          for blob in blobs:
                    if blob[2]*blob[3] > max_size:
                            max_blob=blob
                            max_size = blob[2]*blob[3]
          return max_blob
      
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
      
          blobs=[]
      
      #    nothing=img.find_blobs([thresholds[3]])
          blobs=img.find_blobs([thresholds[0],thresholds[1],thresholds[2]], pixels_threshold=5, area_threshold=5, merge=True)
      
          max_b=find_max(blobs)
      
          if max_b.code()==1:
                   led.off()
                   uart.write('1')
                   img.draw_rectangle(max_b[0:4],color=(0,255,0))
                   img.draw_cross(max_b[5],max_b[6],color=(255,0,0))
                   print("green")
          elif max_b.code()==2:
                  led.off()
                  uart.write('2')
                  img.draw_rectangle(max_b[0:4],color=(255,0,0))
                  img.draw_cross(max_b[5],max_b[6],color=(0,255,0))
                  print("blue")
          else:
                led.off()
      
      
      #    if max_b.code()==3:
      #            uart.write('1')
      #            img.draw_rectangle(max_b[0:4],color=(0,0,255))
      #            img.draw_cross(max_b[5],max_b[6],color=(0,0,255))
      #            print("black")