• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 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这里也报错了