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



    • 请在这里粘贴代码
      ```# Single Color RGB565 Blob Tracking Example
      #
      # This example shows off single color RGB565 tracking using the OpenMV Cam.
      
      import sensor, image, time, math
      import time
      from pyb import UART
      
      uart = UART(3, 19200)
      
      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 = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds
                    (30, 100, -64, -8, -32, 32), # generic_green_thresholds
                    (0, 30, 0, 64, -128, 0)] # generic_blue_thresholds
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      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()
      
      # Only blobs that with more pixels than "pixel_threshold" and more area than "area_threshold" are
      # returned by "find_blobs" below. Change "pixels_threshold" and "area_threshold" if you change the
      # camera resolution. "merge=True" merges all overlapping blobs in the image.
      
      def findColor(r,g,b):
          rr = int(r)
          gg = int(g)
          bb = int(b)
          if rr > gg and rr > bb :
              return 'r'
          if gg > rr and gg > bb :
              return 'g'
          if bb > rr and bb > gg :
              return 'b'
      
      while(True):
          time.sleep(100)
          clock.tick()
          img = sensor.snapshot()
          rgbs = img.get_pixel(int(img.width()/2),int(img.height()/2+0.5))
          print(findColor(rgbs[0],rgbs[1],rgbs[2])) 
          result = findColor(rgbs[0],rgbs[1],rgbs[2])
          uart.write(result)


    • findColor有问题,有默认返回值吗?否则会返回None。