My understanding is that Tom's 'great circles' proposal only
concerns 'straight-line' control points and not horizontal/vertical
control points:
http://wiki.panotools.org/Horizontal_control_points
http://wiki.panotools.org/Vertical_control_points
http://wiki.panotools.org/Straight_line_control_points
These 'straight lines' currently are only much use in 'rectilinear'
output. I think that Tom is proposing that the 'rectilinear' case
will remain more-or-less the same, but straight lines will become
similarly useful with any output projection.
--
Bruno
actually true for v CPs only. h CPs are confusing to newbies who often
think of them as "parallel to the horizon" rather than "on the
horizon/equator of the sphere".
I agree with your analysis and look forward for the improved optimizer.
One thing I kindly as you to consider (and of which I have not thought
through how much complexity it would introduce): does it make sense to
separate input space lines from output space lines?
Yuv
For straight lines to work it is necessary to have more than a pair of
points.
For h & v lines use one pair of points.
I am ok with h&v lines not being tied to the output projection. But I
still want to be able to do perspective correction by setting h & v
control points.
Evaluating all the points that make a straight line and giving an error
to each of the points should improve the accuracy of straight lines.
Having just looked at the current algorithm for straight lines I can see
room for improvement.
The current algorithm for straight lines takes a give pair of line
points and finds the first pair of line points that is not itself that
has the same id.
It uses these 4 points to find the furthest two points to make a line
and calculates the error of the other two points from this line.
The biggest problem with this is the first pair of points is always used.
Another area of improvement would to updating the fine-tune control
points to shift straight line points perpendicular to this line.
Something similar can be done with h & v points.
--
Jim Watters
jwatters @ photocreations . ca
http://photocreations.ca
> You have identified what will probably be the worst source of
> confusion about using general straight line controls: the fact that
> such lines don't necessarily look straight in either the input or
> output images, which are both projections of the real world. A line
> that is straight in the real world will be straight in an image only
> if the image is an ideal rectilinear projection, or in certain special
> positions for other projections.
I don't think this is a show stopper. Confusion is far larger as it
is now: That a line has to be straight in output projection.
Apparently it is not easy to learn and understand that fact but once
you done so, you should understand the new concept even better. For
any new user of panotools it will be more intuitive and far more
versatile to have the new model. All those telephone wires and other
featureless line structures would be far easier to stitch...
best regards
Erik Krause
http://www.erik-krause.de
As I can't read the code myself, I try to understand from your
description what would be the best method to place line cps to have them
properly interpreted with the algorithm as it is.
Is it: 1. place a pair (1a+1b) at the ends of the distorted line to be
straightened and 2. place another pair a bit further inside (2a+2b)
( ----1a---------2a------------2b--------1b--)
or: place consecutive pairs starting from one end
(--1a ---------1b-----------2a-------2b--) ?
Are the 4 points of two pairs interpreted pairwise? I understand: no.
Does the problem occur only when there are more than 4 points?
I just started to use this feature and I am going to use it for the
seemingly pretty easy method of lens calibration described here some
days ago. So I would appreciate some help on how to make the most of it.
regards
Joachim
Tom> Hi Jim
Tom> On Jul 24, 2:37 pm, Jim Watters <jwatt...@photocreations.ca> wrote:
>> I don't think we can change how h and v control points are added.
>>
>> For straight lines to work it is necessary to have more than a pair of
>> points.
>> For h & v lines use one pair of points.
>>
>> I am ok with h&v lines not being tied to the output projection. But I
>> still want to be able to do perspective correction by setting h & v
>> control points.
>>
Tom> I don't propose to change how h and v controls work, just line
Tom> controls. H/v would remain tied to the output projection.
Tom> I know that many people find the h and v functionality very useful as
Tom> it is; nor can I foresee enhancement that would not be better served
Tom> by the true straight line control -- which should work like a
Tom> generalized h/v also.
Go for it Tom. Add it as an optional feature (i.e. create another
parameter that specifies if your new method is to be used or not, by
default it will work as usual, when set it will use your
method). Once it is in panotools people can start using if they want
to. No point on stopping a feature when it can be an extension to the
current ones (not a replacement).
--dmg
--
--
Daniel M. German
http://turingmachine.org/
http://silvernegative.com/
dmg (at) uvic (dot) ca
replace (at) with @ and (dot) with .
I don't think you need to define a new type of control points, do you?
At first release it as a patch, so some interested people can try it.
And don't worry about the freeze for Hugin. There is always a new
version next. But first
we need to see it working.
--dmg
Rather than a behavior switch in the GUI and the tools using the project
file, how about extending the specs of the project file itself at the
parser?
I am looking at the specs, shared by PTOptimizer and nona/hugin
The affected lines would be the 'c' lines, for the control points,
starting around line 232.
unfortunately it is not possible to extend the optional switch "t"
without changing its parameters type from the current unsigned integer,
so to avoid breaking existing parsers we'll have to leave it alone and
add a new optional switch, let's call it "s".
0 - default: old behavior
1 - CP in "real space", i.e. what you intend to implement
this will leave place for other types of CP such as output space CPs
Yuv
this is a very good idea. Hugin (if I remember correctly) lets you
edit the optimization script before it is send to the optimizer.
--dmg