The Realization: Setting the control points
I assume, you are already familiar with the process of
setting normal control points: One marks the same image feature in two
(overlapping) images. The optimizer will then try to reduce the sum of
control point distances until this sum is as small as possible.
Setting a line is a little different: You don't use two overlapping
images, you use the same image. And you don't mark the same image feature,
but you set the control point along a straight (vertical) line.
Unfortunately, this vertical line will only rotate
the image, it won't align this image vertically. For this reason, we have
to assign more vertical lines - best: one in every source image. For
mathematical/geometrical reasons, this will not only rotate but also move
the image into the correct vertical position - setting the horizon at the
correct level.
We will now do this with a practical example. Like always,
you can download the source images here. If you
have no practical experience in creating a 360-degree panorama, i suggest
reading this article first.
Here, we will continue at the point, where the source images are already
loaded, the normal/standard control points set and optimized:
(In this example, i've enhanced the horizon mis-alignment a little -
meanwhile PTGui is pretty good in automatic alignment...)
Before we start setting the vertical ("t1) control points,
i want to point out a specific characteristic of this particular panorama.
Although it may not be noticeable - not all verticals are really
verticals. This is because the endwalls of the metro waggon are in reality
slightly tilted. Though - even slightly tilted lines are in practice
better than no verticals at all.
I like to compare the behaviour of control points with
a "lever force". When optimizing, all control points will correlate in
a way that the sum of control point errors will be as low as possible.
This simple rule can be used to priorize the vertical control points:
If you are unsure if a line is really vertical, you can use only a
small section of your vertical line. If you are pretty sure: use a
larger section of your vertical line.
We will now begin to set the first vertical control point:
Switch to the "control point"-tab and select the same source image in both
windows. You will notice that PTGui will automaticalls set the type to
"t1" (vertical line):
You can see a grab pole in the middle of the picture. We
can safely assume the this pole is built as an exact vertical. So we can
use the complete pole for assigning the control point:
We are now ready with the first picture. Click on the red
"Next"-Arrow to switch to the next source image.
Here we have the problem that we can't be sure that the lines are really
vertical, but we can assume that they are approximately vertical. So we
limit the control point to a smaller section:
You may argue that this doesn't seem to be very exact. Basically you are
right, but this method is still more exact than aligning the panorama by
hand and it also has the advantage to be repeat- and correctable as often
as you want.
The Finale: Optimizing and analyzing the optimizer
result:
First of all we have to allow free movement and rotation
of all images. We will only prohibit the movement of an anchor image in
X-direction. For not falsifying the result, we will deactivate all lens
optimizations.
Furthermore, we have to use the "Panorama Tools Optimizer" instead of
PTGui's optimizer.
In the following image, all needed modifications are marked red:
Now we can run the Optimizer and hopefully, the result
will be good:
If you notice a degradation of your Optimizer result,
you can use the "Control Point Table" to find the problem:
You can see that the distances of the vertical control points only
denote their deviation from a perfect vertical - not their distance from
each other (as normal control points would do).
In our case, we already have a good result. The control points show only
low distances.