#!/usr/bin/env python3 import os import re import subprocess indir="apriltag-imgs/tag16h5" outdir="tag16h5" images = [] for (dirpath, dirnames, filenames) in os.walk(indir): for f in filenames: m = re.match(r'.*_(\d{5})\.png$', f) if m: images.append((os.path.join(dirpath, f), f, int(m.group(1)))) density = 300 for p, f, i in sorted(images, key=lambda t: t[2]): print(p, f, i) annotation = f'AprilTag family = {outdir}, size = 6 in, id = {str(i)}' outpath = os.path.join(outdir, os.path.splitext(f)[0] + '.pdf') cmd = [ 'convert', p, '-density', str(density), '-scale', str(density*100) + '%', '-bordercolor', 'black', '-border', '1', '-gravity', 'center', '-extent', str(density*8.5) + 'x' + str(density*11), '-gravity', 'south', '-annotate', '+0+' + str(density*0.25), annotation, outpath ] print(cmd) subprocess.call(cmd) # post process with # pdftk tag16h5/*.pdf cat output tag16h5.pdf