• 星瞳AI VISION软件内测!可以离线标注,训练,并生成OpenMV的模型。可以替代edge impulse https://forum.singtown.com/topic/8206
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 请问怎么解决摄像头在有颜色背景下开启会呈现青色?



    • 请问怎么解决摄像头在有颜色背景下开启会呈现青色?





    • 如果背景颜色没法给予自然光而是初始时是有颜色的背景怎么去除青色的画面色?



    • 代码里不要关闭白平衡。



    • 如果涉及代码,需要报错提示与全部代码文本,请注意不要贴代码图片



    • import sensor, image, time
      
      # 为了使色彩追踪效果真的很好,你应该在一个非常受控制的照明环境中。
      #red_thresholds    = (30, 100, 15, 127, 15, 127)
      #green_threshold   = (   0,   80,  -70,   -10,   -0,   30)
      #blue_thresholds   = (0, 15, 0, 40, -80, -20)
      thresholds = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds 1
                    (30, 100, -64, -8, -32, 32), # generic_green_thresholds 2
                    ((33, 100, -5, 127, -109, 127))] # generic_blue_thresholds 4
      # 设置绿色的阈值,括号里面的数值分别是L A B 的最大值和最小值(minL, maxL, minA,
      # maxA, minB, maxB),LAB的值在图像左侧三个坐标图中选取。如果是灰度图,则只需
      # 设置(min, max)两个数字即可。
      
      # 你可能需要调整上面的阈值来跟踪绿色的东西…
      # 在Framebuffer中选择一个区域来复制颜色设置。
      
      sensor.reset() # 初始化sensor
      
      sensor.set_pixformat(sensor.RGB565) # use RGB565.
      #设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种
      
      sensor.set_framesize(sensor.QQVGA) # 使用QQVGA的速度。
      #设置图像像素大小
      
      #sensor.skip_frames(time = 2000) # 让新的设置生效。
      sensor.set_auto_gain(False)
      sensor.set_auto_whitebal(False) # turn this off.
      #关闭白平衡。白平衡是默认开启的,在颜色识别中,需要关闭白平衡。
      clock = time.clock() # 跟踪FPS帧率
      
      def Firstcolor():
          while(True):
              clock.tick() # 追踪两个snapshots()之间经过的毫秒数.
              img = sensor.snapshot() # 拍一张照片并返回图像。
              blobs = img.find_blobs(thresholds)
      
              if blobs:
              #如果找到了目标颜色
                  for b in blobs:
                  #迭代找到的目标颜色区域
                      # Draw a rect around the blob.
                      img.draw_rectangle(b[0:4]) # rect
                      #用矩形标记出目标颜色区域
                      img.draw_cross(b[5], b[6]) # cx, cy
                      #在目标颜色区域的中心画十字形标记
                      if b[2]<=100 and b[3]<=100:
                          break
                      else:
                          return b.code()
      
      
      
      
      def Secondcolor():
          while(True):
              clock.tick()
              img = sensor.snapshot() # 拍一张照片并返回图像。
              blobs = img.find_blobs(thresholds)
              if blobs:
              #如果找到了目标颜色
                  for b in blobs:
                  #迭代找到的目标颜色区域
                      # Draw a rect around the blob.
                      img.draw_rectangle(b[0:4]) # rect
                      #用矩形标记出目标颜色区域
                      img.draw_cross(b[5], b[6]) # cx, cy
                      #在目标颜色区域的中心画十字形标记
                      if b[2]<=100 and b[3]<=100:
                          break
                      else:
                          return b.code()
      
      
      
      class colorrealize():
      
          time.sleep_ms(1000)
          Firstcolor()
          first=Firstcolor()
          print(Firstcolor())
          clock = time.clock()
          time.sleep_ms(1000)
          Secondcolor()
          second=Secondcolor()
          print(Secondcolor())
          while(True):
              if first!=second:
                  print("wrong")
                  Secondcolor()
                  second=Secondcolor()
      
      
              else:
                  print('ok')
                  break
      
      colorrealize()
      
      
      


    • sensor.set_auto_whitebal(False)
      这一行注释掉,看看效果。



    • 没有用还是会是青色



    • 你运行hello world,然后用手电筒补光。