Welcome to the NavList Message Boards.


A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding

Compose Your Message

Add Images & Files
    Calibrating a Camera-Lens-unit for measuring angles
    From: Marcel Tschudin
    Date: 2012 Sep 9, 17:39 +0300
    Bill, you asked in a reply to Greg's contribution "Morning Twilight Camera Jupiter Lunar":

    I do not remember reading a "cookbook" explanation of your calibration method. If does exist online, would you please point me to it.  If not, would you consider publishing it?

    Since we noticed that the subject appeared at that time not to be of much interest for NavList members we continued with it off-list. For all of you who would now like to try using a camera as a sextant I submit here a short how-to for its calibration.

    A complete calibration for measuring the angle between any two points in a photo is complicated. This can however be drastically simplified by deciding to perform the measurements with a certain number of limitations:

    1) Decide that the line segment between the two points defining the angle will always be parallel to one of the boarders of the rectangular photo.

    2) Decide along which axis in the rectangular photo you will measure angles. In order to have an increased range this is preferably an axis along the broad side of the rectangular shape, i.e. along the horizontal in landscape mode.

    I will refer here to the axis along the broad side of the rectangle as x axis and to the one along the short side as y axis.

    3) Decide at which height (y position) of the rectangular shape you will perform the measurements. This can be the center line or a reference line (one of the cross hairs) which your camera possibly provides in the viewer. This means that for measuring angles the camera is always held in such a way that the line segment between the two points is at the same y position along the x axis.

    These limitations simplify the problem already a lot. Depending on where the line segment is positioned along the x axis it would however still require to calculate each time with a calculator or in a spread sheet an integration between the two points. By accepting the following fourth limitation one does this integration once and can then list the calibration results in a table or plot them as a graph:

    4) Decide that the center of the line segment (middle between the two points of the angle to be measured) is kept in the middle of the broad side. (This is how Greg's camera-lens-unit has been calibrated.)

    Note that the errors resulting from the line segment being not quite parallel to the x axis, the line segment being not exactly at the defined y position and the centre of the line segment being not quite at the centre of the broad side are relatively small. They will finally contribute to the accuracy of the individual measurement. For the calibration these errors are expected to cancel out when performing it with a large number of photos.

    The camera-lens-unit can be calibrated using two different methods:

    Direct method (or integral method):
    One takes calibration photos from objects of known size at known distances, thus of known angles Z and compares then these angles to the corresponding distance D in the photo measured in pixels. Example: The calibration photo is known to represent an angle Z of 5 degrees and the distance D in the picture is 1200 pixels results in a data pair: Z=300 moa, D=1200 Px (and also in the scale 0.25 moa/Px).
    -> Take something of around a hundred of such calibration photos distributed in the full angle range of the camera-lens-unit.
    -> Determine the calibration function by determining with a least square fit the parameters a and b of one of the two following functions:

    Z [moa] = a*ATN( D / b)
    (ATN is inverse tangent function)
    Z [moa] = a*(D/1000)^3 + b*(D/1000)

    Knowing a and b one can directly calculated with the above functions the angle Z from the distance D. With both of these two functions one achieves practically the same accuracy. In the second function the value D is divided by 1000 in order to have "practical" values for a and b when expressing D in kilo-Pixels.

    However, instead of calculating the angle with the above functions one can derive from them a scale function s [moa/Px] which depends on D, thus
    Z [moa] = s*D
    This scale function s(D) can be represented as a graph or as a table where intermediate values are found by interpolation. (This is Greg's preferred use.)

    Attached you find the results "_50mm Data ..." obtained for one of these calibrations performed for Greg who decided to use the apparent height of the sun above the horizon (HS) as Z values for calibrating his camera-lens-unit. In the upper figure the blue squares represent the measured distances Z as a function of the scale s [moa/Px] resulting from the individual measurements and the red line the fitted function. The lower figure shows the differences between measured values Z and the product s*D. Note that in the upper figure the large differences in s for low values of Z result in "reasonable" differences Z - D*s which can not particularly be noticed in the lower figure. The lower figure suggests that about 2 out of 3 observations (one standard deviation) are within +/-0.5 moa or about 95% of the observations (two standard deviations) within +/-1 moa. As calibration result one can either use the fitted functions, thus by calculating Z[moa] with the fitted parameters a and b, or by representing the scale s[moa/Px] as a function of D[Px] for obtaining Z[moa] as the product of D[Px] * s[moa/Px] as shown in the attached figure "_50mm Scale ..." which shows also the parameters a and b for each of the two functions. (All of the shown figures were calculated with the second one.)

    Second method (or differential method):
    This will be described here only very brief. Measure at different positions along your reference axis (thus not using limitation 4) a known small angular size, like e.g. the unrefracted HORIZONTAL diameter of the sun. From each of these photos one obtains for the pixel position corresponding to the center of the sun a differential scale value ds(x) in moa/Px. All these scale values are then fitted to a function of the type
    with xo being the pixel value at the center of the broad side.
    The integral of this function allows calculating the angle between any two points along the x axis (at the selected y value). It therefore can also be used to calculate the parameters a and b of the above "Direct method" functions.

    Some practical aspects:
    -> Select a photo program with a cursor symbol allowing accurate pixel measurements. I use a very old version of Microsoft's photo editor which has a sharp arrow.
    -> Try to find an optimal zoom level for measuring the pixels. The eye has a capability of "integrating" shapes. If the zoom level is too high you may see individual pixels but the eye can not find the one to select "by integration". If the zoom level is too low the scatter of the measured values becomes too high.
    -> When calibrating with measured angles relative to the apparent horizon, e.g. with HS, verify that there is no abnormal refraction. This can be done by checking with results from sextant observations taken at this occasion.
    -> When using the sun for calibration measurements its diameter increases when overexposed. Note also that the angular diameter of the sun changes during the year by about 3%.
    -> Greg may possibly add here some of the experiences he made when climbing this learning curve and some of his practical recommendations.

    That's it. Good luck to all of you who give it a try. Corrections or suggestions for improvements are welcome.




    Browse Files

    Drop Files


    What is NavList?

    Join NavList

    (please, no nicknames or handles)
    Do you want to receive all group messages by email?
    Yes No

    You can also join by posting. Your first on-topic post automatically makes you a member.

    Posting Code

    Enter the email address associated with your NavList messages. Your posting code will be emailed to you immediately.

    Email Settings

    Posting Code:

    Custom Index

    Start date: (yyyymm dd)
    End date: (yyyymm dd)

    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site