Apriltag生成

Apriltag生成

一. 单个Apriltag生成

生成单个的二维码,下面给出30cmx30cm打印大小的生成脚本,输入路径直接用 apriltag-imgs 工程的tag36h11系列的图片即可。生成结果得到587个png和pdf格式的二维码。打印成30cmx30cm的即可。

#coding:utf-8
import cv2
import sys
import os
import numpy as np

def png2pdf(img_src_path, img_dst_path, img_dst_path_pdf,num):
  pixel_size = 1800
  #scale
  os.system("convert %s -scale  %s  %s"%(img_src_path, pixel_size, img_dst_path))
  #crop
  img = cv2.imread(img_dst_path)
  gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  region = gray[100:1700, 100:1700] #1600*1600
  ret, binary = cv2.threshold(region, 127, 255, cv2.THRESH_BINARY|cv2.THRESH_OTSU)
  rgb = cv2.cvtColor(binary,cv2.COLOR_GRAY2BGR)
  #draw coordinate
  rgb = cv2.arrowedLine(rgb, (20, 1580), (80, 1580), (0 ,0, 255), 1)
  rgb = cv2.arrowedLine(rgb, (20, 1580), (20, 1520), (0, 255, 0), 1)
  #putText
  rgb = cv2.putText(rgb,str(num), (30, 1570), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 0), 1, cv2.LINE_AA)
  cv2.imwrite(img_dst_path, rgb)
  #to pdf
  os.system("convert %s %s"%(img_dst_path, img_dst_path_pdf))

if __name__ == "__main__":
    if len(sys.argv) !=4:
        print("generate_pdf_apriltag.py  input_path  output_path_png output_path_pdf")
        exit(0)

    input_path = os.path.abspath(sys.argv[1])
    output_path_png = os.path.abspath(sys.argv[2])
    output_path_pdf = os.path.abspath(sys.argv[3])

    # scale + crop + pdf
    img_files = os.listdir(input_path)
    idxs = list()
    for img_file in img_files:
        if img_file.split('.')[1] == 'png':
            img_src_path = os.path.join(input_path, img_file)
            img_dst_path = os.path.join(output_path_png, img_file)
            img_dst_path_pdf = os.path.join(output_path_pdf, img_file.split('.')[0] +'.pdf')
            num = int((img_file.split('.')[0]).split('_')[-1])
            idxs.append(num)
            png2pdf(img_src_path, img_dst_path,img_dst_path_pdf, num)

二. 6x6 Apriltag生成

https://github.com/ethz-asl/kalibr/wiki/calibration-targets

也可以直接下载 6x6的 pdf

kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值