没有用还是会是青色
4
4gvp 发布的帖子
-
RE: 请问怎么解决摄像头在有颜色背景下开启会呈现青色?
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()