Big Ben's Panorama Tutorials

Lens Calibration

Running PTOptimizer

Selecting the Variables

In practise I would gradually increase the number of variables being optimised, but in this case sufficient care has been taken to ensure that the starting values for yaw, pitch and roll of each image should be reasonably accurate.  The main unknowns are v,a,b,c (lens parameters) and d,e (image offset parameters since I am scanning my images from film).  Given the relatively large number of control points it should be possible to optimise all practical variables at once.

For the sake of comparison let's break the script up into three separate scripts and optimise each in turn. (NB these scripts have been prepared using my high resolution images)

  1. Normal control points only
  2. Vertical lines only
  3. Normal control points and vertical lines

For each script we will optimise all practical variables.

  1. v,a,b,c, all yaw, roll and pitch angles except for image0, and all offset variables
  2. v,a,b,c, all yaw angles except for image0, all roll and pitch angles and all offset variables
  3. v,a,b,c, all yaw angles except for image0, all roll and pitch angles and all offset variables

Now in theory you would expect the results for v,a,b,c to be the same... but in practise you get this (after a long time in some cases)

  v a b c
All Points 117.218 -0.015156 0.002617 -0.003044
Normal points only 117.244 -0.018605 0.011618  -0.010409
Vertical lines only 117.564  -0.032569  0.046299 -0.045017
Average 117.342 -0.022110 0.020178 -0.01949

The good thing is that the values are reasonably consistent. Yes, a,b,c vary by a factor of 10-20 at times but they are all reasonably small.  More importantly they all follow the same pattern of negative, positive, negative.  With such variation, it is pointless quoting calibrated values down to 5 decimal points.

My Optimised values then...  v117.3, a-0.02, b0.02, c-0.02  (nice and easy to remember.

To calculate v for a portrait image I make a panorama from a single image calibrated values in this script ...

p w3600 f2 v360 n"JPEG"
o f3 r0 p0 y0 v117.3 a-0.02 b0.02 c-0.02

...and then measure the height of the image in pixels (measured through the centre of the image), which will give me the FOV in 1/10°. In this case  I get 78.8°.

 


Previous ]


This page, its contents and style, are the responsibility of the author and do not represent the views, policies or opinions of The University of Melbourne. All photographs © Ben Kreunen 2000

Ben Kreunen <bernardk@unimelb.edu.au>
Department of Pathology
Last modified: February 24, 2003