module Tracksperanto::UVCoordinates
For Syntheyes, zero is at the optical center of the image, and goes positive right and up. The corners get the [-1..1] coordinates respectively. Since Tracksperanto
works in absolute pixels we need to convert to and from these cords. Note that Syntheyes actually assumes the center of the first pixel to be at -1,1 so a small adjustment is necessary to maintain subpixel accuracy.
Public Instance Methods
absolute_to_uv(abs_x, abs_y, w, h)
click to toggle source
Convert absolute X and Y values off the BL corner into Syntheyes UV coordinates
# File lib/tracksperanto/uv_coordinates.rb, line 9 def absolute_to_uv(abs_x, abs_y, w, h) [convert_to_uv(abs_x, w), convert_to_uv(abs_y, h) * -1] end
convert_from_uv(uv_value, absolute_side)
click to toggle source
Convert Syntheyes UV value into absolute pixel value off the BL corner
# File lib/tracksperanto/uv_coordinates.rb, line 19 def convert_from_uv(uv_value, absolute_side) # Account for the fact that Syntheyes assumes the # pixel values to be at the center of the pixel abs_value = (((uv_value.to_f / 2.0) + 0.5) * (absolute_side.to_f - 1)) + 0.5 end
convert_to_uv(abs_value, absolute_side)
click to toggle source
Convert absolute pixel value off the BL corner into Syntheyes UV coordinate
# File lib/tracksperanto/uv_coordinates.rb, line 14 def convert_to_uv(abs_value, absolute_side) uv_value = (((abs_value.to_f - 0.5) / (absolute_side.to_f - 1)) - 0.5) * 2.0 end