User Tools

Site Tools


pr0ntools:pr0nts

This is an old revision of the document!


The goal of this tool is to be able to stitch large panoramas easier on machines with fewer resources than may be desirable. Instead of outputting a single large image like a standard stitch would do this tool generates a folder full of tiles. These can then be processed into a Google maps type application.

There are two modes:

  • Single: cut up a single input image
  • Project:

Configuration

I have some limited configuration file support. In particular you can have a JSON file called ~/.pr0nrc that can look like this:

  {
      "enblend": {
          "opts":"-m 10240"
      }
  }

That is you can pass in arbitrary additional options to enblend. In the above example I do this to increase the cache size to 10 GB on my desktop which can afford that sort of memory allocation.

Usage

usage: pr0nts [-h] [--stw SUPER_TW] [--sth SUPER_TH] [--force] [--merge]
            [--out-ext OUT_EXTENSION] [--full] [--st-xstep SUPER_T_XSTEP]
            [--st-ystep SUPER_T_YSTEP] [--clip-width CLIP_WIDTH]
            [--clip-height CLIP_HEIGHT] [--ignore-errors]
            pto project
create tiles from unstitched images
positional arguments:
  pto project           pto project
optional arguments:
  -h, --help            show this help message and exit
  --stw SUPER_TW        Supertile width
  --sth SUPER_TH        Supertile height
  --force               Force by replacing old files
  --merge               Don't delete anything and only generate things missing
  --out-ext OUT_EXTENSION
                        Select output image extension (and type), .jpg, .png,
                        .tif, etc
  --full                use only 1 supertile
  --st-xstep SUPER_T_XSTEP
                        Supertile x step (advanced)
  --st-ystep SUPER_T_YSTEP
                        Supertile y step (advanced)
  --clip-width CLIP_WIDTH
                        x clip (advanced)
  --clip-height CLIP_HEIGHT
                        y clip (advanced)
  --ignore-errors       skip broken tile stitches (advanced)

Examples

Simple

pr0nts out.pto

Pick some halfway reasonable defaults (that may still need fiddling) and output tiles to the directory “out” (or whatever $X in $X.pto is). If the directory already exists an error will be thrown.

Advanced

pr0nts –clip-width 3264 –clip-height 2448 –stw=$[3264 * 5] –sth=$[2448 * 6] out.pto –merge –ignore-errors

Note my camera takes 3264 X 2448 images. Don't stitch 3264 x units on each side overlapping another image and 2448 in the y direction. Supertiles should be 16320 X 14688 pixels. Use out.pto to determine stitch parameters and merge with the existing output. If a command fails skip that supertile and try the next.

Symptoms and fixes

Garbled tiles

Caption

Changes are your project is poorly optimized. You should be able to get an RMS error of < 5 without too much trouble and for good results it should be < 1.

Uneven adjacent tile brightness

Your source images have uneven brightness. This can happen using auto-brightness, lamp misalignment, an uneven sample, or because there is a brightness gradient from using polarized light on non-strain-free objectives. Try increasing the clip width/height as it will force a large area to be melded together before creating a tile.

pr0ntools/pr0nts.1329554285.txt.gz · Last modified: 2013/10/20 14:59 (external edit)