openmv可以正常识别但lcd屏显示卡顿半天才出一个画面,想问一下是什么情况
-
import sensor, image, time, lcd import json from pyb import UART green_threshold = (41, 66, -61, -27, 8, 43) red_threshold = (41, 61, 42, 127, -128, 127) yellow_threshold = ( 60 ,10,-15,20,30,80) sensor.set_hmirror(True) sensor.set_vflip(True) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QQVGA2) sensor.skip_frames(10) sensor.set_auto_whitebal(False) clock = time.clock() lcd.init() # Initialize the lcd screen. uart = UART(3, 9600) def find_max(blobs): max_size=0 for blob in blobs: if blob.pixels() > max_size: max_blob=blob max_size = blob.pixels() return max_blob while(True): clock.tick() img = sensor.snapshot() blobs0 = img.find_blobs([green_threshold]) blobs1 = img.find_blobs([red_threshold]) blobs2 = img.find_blobs([yellow_threshold]) if blobs0: max_blob=find_max(blobs0) img.draw_rectangle(max_blob.rect()) img.draw_cross(max_blob.cx(), max_blob.cy()) img.draw_string(100,100, 'x=' + str(blobs0.cx()), color=(0,0,0)) img.draw_string(100,120, 'y=' + str(blobs0.cy()), color=(0,0,0)) lcd.display(img) # Take a picture and display the image. data="0" data_out = json.dumps(set(data)) uart.write(data_out +'\n') print('you send:',data_out) elif blobs1: max_blob=find_max(blobs1) img.draw_rectangle(max_blob.rect()) img.draw_cross(max_blob.cx(), max_blob.cy()) data="1" data_out = json.dumps(set(data)) uart.write(data_out +'\n') print('you send:',data_out) elif blobs2: max_blob=find_max(blobs2) img.draw_rectangle(max_blob.rect()) img.draw_cross(max_blob.cx(), max_blob.cy()) data="2" data_out = json.dumps(set(data)) uart.write(data_out +'\n') print('you send:',data_out) else: print('not found','4')
-
原因:你的代码的逻辑是当36行的判断是真,然后才显示lcd。
解决办法:把42行的lcd.display(img)放到最下面