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



    • import sensor, image, time, math
      import json
      from pyb import Pin, Timer
      #屏幕 320*240
      height = 120
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      #sensor.set_windowing(320,240))
      sensor.skip_frames(time = 2000)
      sensor.set_auto_gain(False) # must be turned off for color tracking
      sensor.set_auto_whitebal(False) # must be turned off for color tracking
      clock = time.clock()
      red_block_x=1
      green_block_x=2
      blue_block_x=3

      message=000

      #lcd.init() # Initialize the lcd screen.

      threshold_index = 0 # 0 for red, 1 for green, 2 for blue

      Color Tracking Thresholds (L Min, L Max, A Min, A Max, B Min, B Max)

      The below thresholds track in general red/green/blue things. You may wish to tune them...

      thresholds = [(23, 55, 26, 64, -19, 42), # generic_red_thresholds
      (53, 74, -42, -7, -29, 2), # generic_green_thresholds
      (53, 76, -30, 40, -68, -27)] # generic_blue_thresholds
      objthresholds = [(61, 86, 11, 44, -33, 0), # generic_red_thresholds
      (34, 97, -11, -46, -52, 40), # generic_green_thresholds
      (69, 51, 5, 44, -29, -50)] # generic_blue_thresholds

      graythreshold=[(100,255)]

      K=5000
      while(True):

      clock.tick()
      
      light = Timer(2, freq=1800).channel(1, Timer.PWM, pin=Pin("P6"))#ferq=50000
      light.pulse_width_percent(2)#30
      if(C_led):
          light.pulse_width_percent(2)#30
      # 控制亮度 0~100##############################################
      CS_flag=1
      
      img = sensor.snapshot()
      
      if(CS_flag):
          #light = Timer(2, freq=1800).channel(1, Timer.PWM, pin=Pin("P6"))#ferq=50000
          #light.pulse_width_percent(2)#30
          clock.tick() # Track elapsed milliseconds between snapshots().
          img = sensor.snapshot() # Take a picture and return the image.
          blobs = img.find_blobs([thresholds[0],thresholds[1],thresholds[2]],x_stride=40,y_stride=40,pixels_threshold=1000)
          if blobs:
              data=[]
              max_blob = find_max(blobs)
              img.draw_cross(max_blob.cx(),max_blob.cy())
              img.draw_circle(max_blob.cx(),max_blob.cy(),max_blob.cx()-max_blob.x(), color = (255, 255, 255))
              X =int(max_blob.cx()-img.width()/2)
              Y =int(max_blob.cy()-img.height()/2)
              data.append((X,Y))
              data_out = json.dumps(set(data))
              uart.write('CS'+data_out +"\r\n")
              print(data_out)
              print("偏移坐标 : ",X, Y)
              #print("Y轴偏移坐标 : ",Y)
              #print("帧率 : ",clock.fps())
              CS_flag = 0