星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 请问怎么识别特定ID的AprilTag?



    • 有没有办法识别特定ID的AprilTag?可以讲的详细点吗?





    • 谢谢,有点思路了,不懂再请教



    • @kidswong999

          for tag in img.find_apriltags(fx=f_x, fy=f_y, cx=c_x, cy=c_y): # 默认为 TAG36H11
              #print(tag.id())
              img.draw_rectangle(tag.rect(), color = (255, 0, 0))
              img.draw_cross(tag.cx(), tag.cy(), color = (0, 255, 0))
              print_args = (tag.id(), tag.x_translation(), tag.y_translation(), tag.z_translation(), \
                  degrees(tag.x_rotation()), degrees(tag.y_rotation()), degrees(tag.z_rotation()))
              print("ID: %f, Tx: %f, Ty: %f, Tz: %f, Rx: %f, Ry: %f, Rz: %f" % print_args)
      
      像这段代码,如果openmv识别到几个apriltag标志的话,它会出现下面这种情况(只粘贴了两行),把这几个apriltag标志的ID打印出来了,想问一下怎么提取出ID等于15的那个标志呢?
      .....
      ID: 15.000000, Tx: -0.464612, Ty: -2.518064, Tz: -17.411228, Rx: 187.194242, Ry: 43.478470, Rz: 358.177352
      ID: 14.000000, Tx: -3.247705, Ty: -1.681922, Tz: -15.471701, Rx: 152.212372, Ry: 328.892517, Rz: 3.846272
      ......


    •     for tag in img.find_apriltags(fx=f_x, fy=f_y, cx=c_x, cy=c_y): # 默认为 TAG36H11
              if tag.id() == 15:
                  img.draw_rectangle(tag.rect(), color = (255, 0, 0))
                  img.draw_cross(tag.cx(), tag.cy(), color = (0, 255, 0))
                  print_args = (tag.id(), tag.x_translation(), tag.y_translation(), tag.z_translation(), \
                  degrees(tag.x_rotation()), degrees(tag.y_rotation()), degrees(tag.z_rotation()))
                  print("ID: %f, Tx: %f, Ty: %f, Tz: %f, Rx: %f, Ry: %f, Rz: %f" % print_args)