aprilgrid.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import cv2
  2. import apriltag
  3. import numpy as np
  4. # AprilTag 相关设置
  5. tag_size = 200 # 单个AprilTag的尺寸(像素)
  6. family = 'tag36h11' # AprilTag家族
  7. grid_size = (5, 5) # AprilGrid的大小,例如5x5
  8. # 创建AprilTag生成器
  9. tag_generator = apriltag.AprilTag(family)
  10. # 创建一个空白画布,用于绘制AprilGrid
  11. grid_image = np.ones((grid_size[0] * tag_size, grid_size[1] * tag_size), dtype=np.uint8) * 255
  12. # 生成AprilGrid
  13. for i in range(grid_size[0]):
  14. for j in range(grid_size[1]):
  15. # 生成单个AprilTag
  16. tag_id = i * grid_size[1] + j
  17. tag_image = tag_generator.generate(tag_id).astype(np.uint8)
  18. # 计算放置位置
  19. start_x = i * tag_size
  20. start_y = j * tag_size
  21. # 放置AprilTag到网格中
  22. grid_image[start_x:start_x + tag_size, start_y:start_y + tag_size] = tag_image
  23. # 保存生成的AprilGrid图像
  24. cv2.imwrite('aprilgrid.png', grid_image)
  25. # 显示生成的AprilGrid图像
  26. cv2.imshow('AprilGrid', grid_image)
  27. cv2.waitKey(0)
  28. cv2.destroyAllWindows()