def main(): while True: clock.tick() cx = 0 cy = 0 pix = 0 flag = 0 img = sensor.snapshot() blobs = img.find_blobs([threshold[threshold_ch]], x_stride=10, y_stride=10, pixels_threshold=100) if blobs: road = find_max(blobs) pix = road.pixels() // 250 if pix > 255: pix = 255 flag = 1 cx = road.cx() cy = road.cy() img.draw_rectangle(road.rect()) my_uart.send(flag, cx, cy, pix) if pix > 30: ledR.on() else: ledR.off() print(flag, cx, cy, pix, clock.fps())
def main(): while True: clock.tick() pix = 0 break_road = 0 cnt1 = 0 cnt2 = 0 mode = 0 hh = 0 cc = 0 img = sensor.snapshot() t = my_uart.read() if t!= None: mode = t >> 7 offset = t & 0x7F blobs = img.find_blobs([red_threshold[red_ch]], roi = roi_red, x_stride=5, y_stride=10, pixels_threshold=200) if blobs: road = find_max(blobs) pix = road.pixels() * 255 // 3000 if pix > 255: pix = 255 if mode == 0: blobs = img.find_blobs([blue_threshold, black_threshold], roi = roi_blue[0], x_stride=3, y_stride=6, pixels_threshold=100) if blobs: road = find_max(blobs) break_road = road.pixels()*255//2500 else: blobs = img.find_blobs([blue_threshold, black_threshold], roi = roi_blue[1], x_stride=3, y_stride=6, pixels_threshold=100) if blobs: road = find_max(blobs) break_road = (road.pixels()-150)*255//3400 if break_road < 0: break_road = 0 if break_road > 255: break_road = 255 if mode == 1: blobs = img.find_blobs([white_threshold], roi = roi_white[chioce], pixels_threshold=20) if blobs: road = find_max(blobs) hh = road.h() cc = road.cy()+1 else: roi_white2[0] = int(-0.3297*offset+106.2)-3 blobs = img.find_blobs([white_threshold], roi = roi_white2, pixels_threshold=20) if blobs: road = find_max(blobs) hh = road.h() cc = road.cy()+1 my_uart.send(pix,break_road,cc,hh) if pix > 30: ledR.on() else: ledR.off() if break_road > 170: ledB.on() else: ledB.off() print(clock.fps())
def main(): while True: clock.tick() pix = 0 break_road = 0 img = sensor.snapshot() t = my_uart.read() if t != None: mode = t >> 7 offset = t & 0x7F blobs = img.find_blobs([red_threshold], roi=(47, 25, 87, 70), x_stride=10, y_stride=5, pixels_threshold=200) if blobs: obstacle = find_max(blobs) pix = obstacle.pixels() * 255 // 3000 if pix > 255: pix = 255 img.draw_rectangle(obstacle.rect()) blobs = img.find_blobs([blue_threshold, black_threshold], roi=(0, 21, 33, 77), x_stride=6, y_stride=3, pixels_threshold=100) if blobs: road = find_max(blobs) break_road = road.pixels() * 255 // 2500 if break_road > 255: break_road = 255 img.draw_rectangle(road.rect()) my_uart.send(pix, break_road) if pix > 30: ledR.on() else: ledR.off() if break_road > 180: ledB.on() else: ledB.off() print(clock.fps())