2022电赛泊车openmv代码
- 仅作为比赛参考,具体数值请自己调整
- 注释写的很清楚了
import sensor, image, time, math,pyb
from pyb import Pin, Timer,UART
uart = pyb.UART(1,115200,timeout_char = 1000)
thresholds = (0, 40)
ROIS = [ (30, 90, 100, 30, 0), (40, 40, 80, 40, 0), (30, 0, 100, 30, 0), (0, 20, 30, 100, 0), (130,20 , 30, 100, 0) ]
weight_sum = 0
for r in ROIS: weight_sum += r[4]
sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time=2000)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
flag = 0
i = 0
led=pyb.LED(3)center_flag1 = 0
center_flag2 = 0
center_flag3 = 0
center_flag4 = 0
center_flag5 = 0
mid_num = 0
out_str1 = ''
count_RT = 0
RT_tag = 0
T_tag = 0clock = time.clock()
def tick(timer):global flagflag=1tim = Timer(4,freq=100)
tim.callback(tick)
while(True):pyb.LED(1).on()if(flag==1):img=sensor.snapshot()img.lens_corr(1.5) for r in ROIS:i=i+1;blobs=img.find_blobs([thresholds], roi=r[0:4], merge=True,pixels_area=10) if blobs:largest_blob = max(blobs, key=lambda b: b.pixels())if(i==1):if(largest_blob[2]>=5):if(largest_blob[3]>=5):center_flag1=1;img.draw_rectangle(largest_blob.rect())img.draw_cross(largest_blob.cx(),largest_blob.cy(),2)elif(i==2):if(largest_blob[2]>=5):if(largest_blob[3]>=5):center_flag2=1;img.draw_rectangle(largest_blob.rect())img.draw_cross(largest_blob.cx(),largest_blob.cy(),2)elif(i==3):if(largest_blob[2]>=5):if(largest_blob[3]>=5):center_flag3=1;img.draw_rectangle(largest_blob.rect())img.draw_cross(largest_blob.cx(),largest_blob.cy(),2)elif(i==4):if(largest_blob[2]>=5):if(largest_blob[3]>=5):center_flag4=1;img.draw_rectangle(largest_blob.rect())img.draw_cross(largest_blob.cx(),largest_blob.cy(),2)elif(i==5):if(largest_blob[2]>=5):if(largest_blob[3]>=5):center_flag5=1;img.draw_rectangle(largest_blob.rect())img.draw_cross(largest_blob.cx(),largest_blob.cy(),2)if(center_flag1>0 and center_flag3>0 and center_flag5>0):RT_tag = 1passif(center_flag1>0 and center_flag4>0 and center_flag5>0):T_tag = 1passif (center_flag1 == 0 and center_flag2 == 0 and center_flag3 == 0 and center_flag4 == 0 and center_flag5 == 0):count_RT = 0passif(RT_tag > 0):mid_num += 1if(mid_num > 20):count_RT += 1mid_num = 0if(mid_num < 0 ):mid_num = 0out_str1 += '%.d' % int(RT_tag); out_str1 += '%.d' % int(T_tag); out_str1 += '%.d' % int(count_RT); uart.write('s'+out_str1+'#')print(out_str1)center_flag1 = 0 center_flag2 = 0center_flag3 = 0center_flag4 = 0center_flag5 = 0i = 0flag = 0RT_tag = 0T_tag = 0out_str1 = ''
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!