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))
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')
lcd.display(img) # Take a picture and display the image.
4
4qgd 发布的帖子
-
麻烦问一下,运行老是出现图片上的提示,这是什么问题
-
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')