Straight Line UI proposal

From Wiki
Revision as of 23:10, 21 April 2011 by Onomou (talk | contribs) (Proposal: Rework proposal for GSoC)

Jump to: navigation, search

A New Tool For Straight Line Definition


Currently the only one way to specify lines in a panorama is to manually create pairs of control points. This approach has multiple disadvantages. From user perspective it's not very intuitive and defining multiple lines can be a pretty tedious work. Also the lines are a part of output space and thus defining them in output space seems to be more appropriate.


Move the straight line definition into the Fast Preview. The line can be drawn by having the user click two points on the line, with the line being shown as the user draws it to aid accuracy. Then using either the lens_calibrate tool or a new edge detection algorithm, Hugin will check (if the user wants) if there is a better fit for the line (inaccurate clicking could make the line less accurate). Control points would then be added either at regular intervals along the line (between the endpoints the user clicked), and then revised or thrown out if there is not a strong correlation between pairs of images.

The line being drawn by the user should either take into account lens data given (eg. fisheye lenses generally obliterate straight lines) or there should be an option to define the line using three points or as a Bezier curve or spline.

The user may specify the type of line – whether it's horizontal, vertical or just a straight line. It might be handy if there was an option to run optimizer as the lines are added so the user would have an immediate feedback how the lines change the panorama. Note that optimizer shouldn't be run by default, because optimization may take a lot of time, rendering proposed tool unusable.

One problem that needs to be resolved is how the line should be specified when multiple images overlap as noted by kfj in [1].

The idea is based on the idea from RawTherapee forum [2].


Before this works the fast preview needs some zooming function to set exactly the points. Also it is necessary to identify the image in which the line should be created in case the point is setting in an overlapping area or using the function for HDR panoramas. See other blueprint [3].