Edge Detection for Control Point creation
--Ericball 01:18, 11 February 2012 (UTC)=Edge Detection for Control Point creation=
Currently creating control points for straight lines is problematic as the automated assistants are ineffective. It can also be difficult to identify the precise edge of a feature, especially for JPEG compressed source images. This makes it difficult to properly align features such as a horizon which span a large number of images.
The solution is to add an edge detection function to the Control Point tab which could be used to assist the user in setting control points.
Note: this proposal is similar to Straight Line UI for end functionality, but is significantly different in implementation.
An "Edge Detection" check box would be added to the Control Point tab which would have the following impacts when selected:
- The auto fine, auto add and auto estimate check boxes would be greyed out and the functions the enable would be disabled. (The state of the check boxes should be preserved for when the Edge Detection check box is unselected.)
- An edge detection algorithm (possibly reusing the effort from the Calibrate Lens GUI) would be run against both images and the resulting calculated edges displayed over the images. (Alternating black & white pixels may be a good option.)
- When the user clicks on the image to set a control point, the control point should be aligned with the nearest edge pixel.
In this way the user may easily set line control points on edges and normal control points at corners or intersections.
The edge detection algorithm should have the following properties:
- Detect both straight lines and curves as straight lines (in the projected image) may appear curved in the input image due to the lens (e.g. fisheye or lens abberation) or the projection (e.g. horizon)
- Handle noise introduced by JPEG compression.
- Ideally calculate posititions with sub-pixel accuracy.
- Ideally filter out edges for features which are not "straight". (This may be a tunable distance metric.)
--Ericball 01:18, 11 February 2012 (UTC)