openmv目标点检测并且控制云台进行追踪
-
while(True): clock.tick() img = sensor.snapshot() # detect() returns all objects found in the image (splitted out per class already) # we skip class index 0, as that is the background, and then draw circles of the center # of our objects result=net.detect(img, thresholds=[(math.ceil(min_confidence * 255), 255)])#检测目标 print(result) if (state==1): for i, detection_list in enumerate(result): if (i == 0): continue # background class if (len(detection_list) == 0): continue # no detections for this class? #print("********** %s **********" % labels[i]) #print(i) if (i==2):#识别草莓 for d in detection_list: [x, y, w, h] = d.rect() center_x = math.floor(x + (w / 2))#中心坐标的计算 center_y = math.floor(y + (h / 2)) img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2) pan_error = center_x tilt_error = center_y if(center_x>0 and center_y>0) pan_output=pan_pid.get_pid(pan_error,1)/2 tilt_output=tilt_pid.get_pid(tilt_error,1) pan_servo.angle(pan_servo.angle()+pan_output) tilt_servo.angle(tilt_servo.angle()-tilt_output) else :#识别南瓜 for d in detection_list: [x, y, w, h] = d.rect() center_x = math.floor(x + (w / 2)) center_y = math.floor(y + (h / 2)) #print('x %d\ty %d' % (center_x, center_y)) img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2) if(center_x>0 and center_y>0) pan_output=pan_pid.get_pid(pan_error,1)/2 tilt_output=tilt_pid.get_pid(tilt_error,1) print("pan_output",pan_output) pan_servo.angle(pan_servo.angle()+pan_output) tilt_servo.angle(tilt_servo.angle()-tilt_output)
我这里会报错然后我想问一下我这里哪里错了,还有就是我这种代码思路正确吗,报错的时if(i==2)哪里,然后我先把if(i==2)注释掉之后, pan_output=pan_pid.get_pid(pan_error,1)/2这里也报错了