@kidswong999 而且颜色也不识别了
X
xnum
@xnum
0
声望
4
楼层
301
资料浏览
0
粉丝
0
关注
xnum 发布的帖子
-
在不同颜色卡纸面前打开摄像头,画面会变不同颜色
我openmv颜色检测,发现一个问题,如果镜头面前没有任何颜色的卡纸,连接以后画面颜色正常,如果把黄色卡纸放到镜头面前,再连接,画面必变蓝,放绿色卡纸,画面必变红,这是什么情况?运行hello world也是一样变色
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')