导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. xnum
    X
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    xnum

    @xnum

    0
    声望
    4
    楼层
    333
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    xnum 关注

    xnum 发布的帖子

    • RE: 在不同颜色卡纸面前打开摄像头,画面会变不同颜色

      @kidswong999 而且颜色也不识别了

      发布在 OpenMV Cam
      X
      xnum
    • RE: 在不同颜色卡纸面前打开摄像头,画面会变不同颜色

      @kidswong999 改好后,依然变色,只不过是卡纸一放过去就变色,拿开就变回正常

      发布在 OpenMV Cam
      X
      xnum
    • 在不同颜色卡纸面前打开摄像头,画面会变不同颜色

      我openmv颜色检测,发现一个问题,如果镜头面前没有任何颜色的卡纸,连接以后画面颜色正常,如果把黄色卡纸放到镜头面前,再连接,画面必变蓝,放绿色卡纸,画面必变红,这是什么情况?运行hello world也是一样变色
      0_1602651083188_qq_pic_merged_1602651022896.jpg 0_1602651097181_qq_pic_merged_1602651005421.jpg 0_1602651104320_cec06599fd58084472b30d0907f4d28b.jpg

      import sensor, image, time, json, pyb
      from pyb import UART
      
      #led = pyb.LED(3)
      #usb = pyb.USB_VCP()
      #while (usb.isconnected()==False):
         #led.on()
         #time.sleep(150)
         #led.off()
         #time.sleep(100)
         #led.on()
         #time.sleep(150)
         #led.off()
         #time.sleep(600)
      
      green_threshold  = (25, 50, -48, -25, 12, 37) #定义绿色阈值
      yellow_threshold = (45, 65, -10, 9, 27, 60)
      gray_threshold = (22, 34, -12, 4, -4, 30)
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565) #使用RGB565
      sensor.set_framesize(sensor.QVGA) #使用QQVGA
      sensor.skip_frames(10) #延迟
      sensor.set_auto_whitebal(False)
      clock = time.clock()
      uart = UART(3, 9600)  #定义波特率
      
      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()
          time.sleep(1500)
          blobs1 = img.find_blobs([green_threshold],area_threshold=2000)
          blobs2 = img.find_blobs([yellow_threshold],area_threshold=2000)
          blobs3 = img.find_blobs([gray_threshold],area_threshold=2000)
          if blobs1:
              max_blob = find_max(blobs1)   #调用函数
              img.draw_rectangle(max_blob.rect())    #框出图案
              img.draw_cross(max_blob.cx(), max_blob.cy())
              output_str = '1'     #发出信号
              print(output_str)
              uart.write(output_str+'\r\n')
          elif blobs2:
              max_blob = find_max(blobs2)   #调用函数
              img.draw_rectangle(max_blob.rect())    #框出图案
              img.draw_cross(max_blob.cx(), max_blob.cy())
              output_str = '2'     #发出信号
              print(output_str)
              uart.write(output_str+'\r\n')
          #elif blobs3:
              #max_blob = find_max(blobs3)   #调用函数
              #img.draw_rectangle(max_blob.rect())    #框出图案
              #img.draw_cross(max_blob.cx(), max_blob.cy())
              #output_str = '3'     #发出信号
              #print(output_str)
              #uart.write(output_str+'\r\n')
          else:
              output_str = '4'     #发出信号
              print(output_str)
              uart.write(output_str+'\r\n')
      
      发布在 OpenMV Cam
      X
      xnum