Using Autopano-SIFT With PTGui

From PanoTools.org Wiki
Revision as of 03:34, 18 April 2005 by Rjlittlefield (Talk)

Jump to: navigation, search

Purpose

To automatically define control points, PTGuiprovides plug-in support for Alexandre Jenny's Autopano

In some cases, however, better control points may be found by Sebastian Nowozin's Autopano-SIFT, for which PTGui does not provide plug-in support.

Described here is a procedure for using Autopano-SIFT with PTGui, by text editing of the .pts and .pto files.


Outline

The general procedure is simple:

1. Create a uniform gray dummy image.
2. Launch Autopano-SIFT and load the dummy image and all desired real images into it.
3. Have Autopano-SIFT find control points and write a .pto output file.
4. Create a PTGui .pts project file containing the real images in the same order as Autopano-SIFT.
5. Using a text editor, merge the Autopano-SIFT control points from the .pto file, into the PTGui .pts file.
6. Load the new .pts file into PTGui.

All done!

Example

Here is a worked example.

Autopano-SIFT screen showing images and options.

Resulting .pto file:

# Hugin project file
# automatically generated by autopano-sift, available at
# http://cs.tu-berlin.de/~nowozin/autopano-sift/

p f2 w3000 h1500 v360  n"JPEG q90"
m g1 i0

i w200 h200 f0 a0 b-0.01 c0 d0 e0 p0 r0 v180 y0  u10 n"E:\APSiftPTGui\dummy.jpg"
i w2048 h3072 f0 a0 b-0.01 c0 d0 e0 p0 r0 v180 y0  u10 n"E:\APSiftPTGui\IMG_1558.JPG"
i w2048 h3072 f0 a=1 b=1 c=1 d0 e0 p0 r0 v=1 y0  u10 n"E:\APSiftPTGui\IMG_1559.JPG"
i w2048 h3072 f0 a=1 b=1 c=1 d0 e0 p0 r0 v=1 y0  u10 n"E:\APSiftPTGui\IMG_1560.JPG"
i w2048 h3072 f0 a=1 b=1 c=1 d0 e0 p0 r0 v=1 y0  u10 n"E:\APSiftPTGui\IMG_1561.JPG"
i w2048 h3072 f0 a=1 b=1 c=1 d0 e0 p0 r0 v=1 y0  u10 n"E:\APSiftPTGui\IMG_1562.JPG"
i w2048 h3072 f0 a=1 b=1 c=1 d0 e0 p0 r0 v=1 y0  u10 n"E:\APSiftPTGui\IMG_1563.JPG"

v p1 r1 y1

# match list automatically generated
c n1 N2 x174.513458 y810.332017 X1553.193699 Y1045.629094 t0
c n1 N2 x483.523575 y701.519402 X1859.457450 Y933.601250 t0
c n1 N2 x499.394895 y701.872004 X1875.586670 Y933.439960 t0
...many more control points not shown here...
c n5 N6 x477.779291 y2808.093329 X1761.086190 Y2894.792441 t0
c n5 N6 x479.476119 y2780.860167 X1764.997492 Y2866.882044 t0
c n5 N6 x581.980939 y1271.543946 X1961.858230 Y1321.353301 t0

# :-)

The PTGui screen:

The PTGui project file:

# ptGui project file

#-fileversion 8
#-jpegquality 90
#-previewwidth 250
#-previewheight 250
#-vfov 100
#-fixaspect 1
#-outputfile 
#-ccdcrop 1.6
#-hasbeenoptimized 0
#-morphmode 2
#-simpleoptimizer
#-imgrotate000000
# Panorama settings:
p w1000 h1000 f0 v100 u20 n"JPEG g0 q90"
m g1 i0 f0

# input images:
#-dummyimage
# The following line contains a 'dummy image' containing some global parameters for the project
o w1 h1 y0 r0 p0 v45.2397298960809 a0.001 b0.001 c0.001 f0 d0 e0 g0 t0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1558.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1559.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1560.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1561.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1562.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1563.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0

# Control points:
#-cpinactive
#-imginactive
#-previewinactive
#-morphcp
#-nooptcp

# optimizer:
v v b y2 r2 p2 y3 r3 p3 y4 r4 p4 y5 r5 p5 y6 r6 p6

The edited PTGui project file, after merging control points from Autopano-SIFT:

# ptGui project file

#-fileversion 8
#-jpegquality 90
#-previewwidth 250
#-previewheight 250
#-vfov 100
#-fixaspect 1
#-outputfile 
#-ccdcrop 1.6
#-hasbeenoptimized 0
#-morphmode 2
#-simpleoptimizer
#-imgrotate000000
# Panorama settings:
p w1000 h1000 f0 v100 u20 n"JPEG g0 q90"
m g1 i0 f0

# input images:
#-dummyimage
# The following line contains a 'dummy image' containing some global parameters for the project
o w1 h1 y0 r0 p0 v45.2397298960809 a0.001 b0.001 c0.001 f0 d0 e0 g0 t0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1558.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1559.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1560.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1561.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1562.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1563.JPG"
o f0 y0 r0 p0 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0

# Control points:
c n1 N2 x174.513458 y810.332017 X1553.193699 Y1045.629094 t0
c n1 N2 x483.523575 y701.519402 X1859.457450 Y933.601250 t0
c n1 N2 x499.394895 y701.872004 X1875.586670 Y933.439960 t0
...many more control points not shown here...
c n5 N6 x477.779291 y2808.093329 X1761.086190 Y2894.792441 t0
c n5 N6 x479.476119 y2780.860167 X1764.997492 Y2866.882044 t0
c n5 N6 x581.980939 y1271.543946 X1961.858230 Y1321.353301 t0
#-cpinactive
#-imginactive
#-previewinactive
#-morphcp
#-nooptcp

# optimizer:
v v b y2 r2 p2 y3 r3 p3 y4 r4 p4 y5 r5 p5 y6 r6 p6

PTGui then shows control points like this:

Optimize, adjust pano fov, center, and level the horizon to get this:

And the final PTGui project file:

# ptGui project file

#-fileversion 8
#-jpegquality 90
#-previewwidth 341
#-previewheight 184
#-vfov 89
#-fixaspect 1
#-outputfile 
#-ccdcrop 1.6
#-hasbeenoptimized 1
#-morphmode 2
#-imgrotate000000
# Panorama settings:
p w9023 h4862 f1 v209 u20 n"JPEG g0 q90"
m g1 i0 f0

# input images:
#-dummyimage
# The following line contains a 'dummy image' containing some global parameters for the project
o w1 h1 y0 r0 p0 v44.9777 a0.001 b-0.010922 c0.001 f0 d0 e0 g0 t0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1558.JPG"
o f0 y75.6273 r-2.47403 p-14.1391 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1559.JPG"
o f0 y45.0133 r-0.642895 p-9.85206 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1560.JPG"
o f0 y12.9165 r1.01822 p-9.98844 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1561.JPG"
o f0 y-13.0355 r-3.16182 p-8.09519 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1562.JPG"
o f0 y-38.0791 r-2.58898 p-8.51665 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0
#-imgfile 2048 3072 "E:\APSiftPTGui\IMG_1563.JPG"
o f0 y-69.0947 r-0.619798 p-8.26177 v=0 a=0 b=0 c=0 d=0 e=0 g=0 t=0

# Control points:
c n1 N2 x175 y810 X1553 Y1046 t0
# Control Point No 0: 1.62083
c n1 N2 x484 y702 X1859 Y934 t0
# Control Point No 1: 3.91225
c n1 N2 x499 y702 X1876 Y933 t0
# Control Point No 2: 2.81099
...many more control points not shown here...
c n5 N6 x478 y2808 X1761 Y2895 t0
# Control Point No 67: 1.54454
c n5 N6 x479 y2781 X1765 Y2867 t0
# Control Point No 68: 1.07268
c n5 N6 x582 y1272 X1962 Y1321 t0
# Control Point No 69: 3.5892
#-cpinactive
#-imginactive
#-previewinactive
#-morphcp
#-nooptcp

# optimizer:
v v b y1 r1 p1 y2 r2 p2 y3 r3 p3 y5 r5 p5 y6 r6 p6

Produces this pano: