Contents

A New Tool For Straight Line Definition

Preface

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

This straight line tool could make it possible for the user to draw lines on buildings, fences, horizons, and other objects to quickly align sets of images without even adding single points manually. It would make the program more ergonomic for the user and greatly speed up the process of aligning images.

Proposal

This may involve moving the straight line definition into the Fast Preview, but it could be implemented (probably with less work) in the control point tab, where adding lines would be another option alongside the current point adding.

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].

Prerequisite

Were this to be implemented in the fast preview window, it would need a zooming function to set exactly the points. This is already at least partially done in the control point tab. 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]. This is already implemented in the control point tab.

For the reasons listed above, this should probably be first done in the control point tab, then moved to the fast preview window only if there is good reason. The CP tab would need to have a few new buttons added to switch between adding lines and points, and we would need to determine whether it is feasible to define the horizon in that tab as well. This may enable the user to watch the fast preview window while adding straight lines to see changes live. However, the problem of how editing the panorama in the fast preview window affects those horizon control points in the CP tab would have to addressed.