Utility to draw families of tag on a paper sheet
- go language
- opencv to build the april tag examples
This software is not to be installed system wise, but rather used locally.
cd tag-layouter
git submodule init
fit submodule update
makeTo see all command line options:
./tag-layouter -h| Flag | Description | Default | |
|---|---|---|---|
| -f | --file= | File path to output | |
| -t | --family-and-size= | Tag family and size to use. format: 'name:size:begin-end' | |
| --column-number= | Number of columns to display multiple families | 0 | |
| --individual-tag-border= | Space between the border of two tags | 0.2 | |
| --cut-line-ratio= | Ratio of the border between tags that should be a cut line | 0.0 | |
| --family-margin= | Margin between tag families [mm] | 2.0 | |
| --arena-number= | Number of tags to display in an arena | 0 | |
| -W | --width= | Width to use [mm] | 210 |
| -H | --height= | Height to use [mm] | 297 |
| --paper-border= | Border width for arena or paper [mm] | 20.0 | |
| -d | --dpi= | DPI to use | 2400 |
name:size:begin-end: name specifies the tag family.
size specifies the edge length of a single tag in mm.
begin-end specifies the range of tag IDs. Use 0- if all IDs of a given family should be printed.
Using the arena-number flag produces a page with a number of tags of one given tag familiy placed in random positions and orientations. This is useful to test the setup, e.g. the lighting and camera setting.
Using the column-number flag, produces the sets of the tag families specified by multiple -t (or --family-and-size) arguments arranged rectangularily and in the given number of columns for cutting.
The individual-tag-border specifies the the border between two adjacent tags of the same family.
The familiy-margin option specifies the space between two tag families.
The cut-line-ratio specifies the thickness of the cutting line (ratio of the thickness of the printed cutting line and the disctance between adjacent tags).
widht, height, paper-border and dpi are specified with respect to the printing page layout.
The tag-layouter program will have a lot of option. One solution is
to summarize them in a shell script, such as [generate_dlr.sh].
The best option for prininting is to use raw image format rather than PDF / SVG. Indeed the ratserisation of these files may produce artifact that will leave the tags unusable.
A good option is to prefer the TIF format and use a program like GIMP to print it.
You can add resolution information to any tiff image usinge imagemagick
To install imagemagick on Debian/Ubuntu :
sudo apt install imagemagickAnd to set the correct image resolution (here 1200 PPI ) :
convert <my-file.tiff> -units PixelsPerInch -density 1200 <my-file.tiff>