Results 1 to 5 of 5

Thread: need help about calibrating scanned maps.

  1. #1
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,716
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default need help about calibrating scanned maps.

    Hi All,

    I was wondering if there is anyone here who has experience or links with a good howto about calibrating self scanned maps against a GPS (i.e to show the GPS position read from a GPS receiver on a self scanned map)
    I searched google, found some bits of information,but nothing really that explains this in a practical way.
    From what I read, it should be enough to be able to mark 3 points on the scanned image, and from it to calculate the pixel/GPS coordinate...
    Since I am working on a project (not commercial) with a very tight time schedule, I am looking for libs and code snipets and howtos on the subject.
    Oh, if any of you guys also have any experience or good links about how to control a HAM radio antenna rotor that will be cool as well.

    Thanks.

  2. #2
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    5,372
    Thanks
    28
    Thanked 975 Times in 912 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11 Windows

    Default Re: need help about calibrating scanned maps.

    Quote Originally Posted by high_flyer
    From what I read, it should be enough to be able to mark 3 points on the scanned image, and from it to calculate the pixel/GPS coordinate...
    Yes, it should. I'm not a cartographer, but in plain maths it's like this:

    You have three points on the map:
    .......[x_a1]
    A1= [y_a1]
    .......[ 1 ]

    .......[x_b1]
    B1= [y_b1]
    .......[ 1 ]

    .......[x_c1]
    C1= [y_c1]
    .......[ 1 ]

    three on the scan:
    .......[x_a2]
    A2= [y_a2]
    .......[ 1 ]

    .......[x_b2]
    B2= [y_b2]
    .......[ 1 ]

    .......[x_c2]
    C2= [y_c2]
    .......[ 1 ]

    and you want to find a matrix M that transforms A1 to A2, B1 to B2 and C1 to C2. i.e.:
    A2 = M * A1
    B2 = M * B1
    C2 = M * C1

    This matrix has such form:
    .......[ a, b, c ]
    M = [ d, e, f ]
    .......[ 0, 0, 1 ]

    hence it can express any combination of rotations, scaling and translation.

    All you have to do is to solve the equation.

    In maxima you can do it like this:
    Qt Code:
    1. solve( [x_a2 = a * x_a1 + b * y_a1 + c,
    2. y_a2 = d * x_a1 + e * y_a1 + f,
    3. x_b2 = a * x_b1 + b * y_b1 + c,
    4. y_b2 = d * x_b1 + e * y_b1 + f,
    5. x_c2 = a * x_c1 + b * y_c1 + c,
    6. y_c2 = d * x_c1 + e * y_c1 + f],[a,b,c,d,e,f]);
    To copy to clipboard, switch view to plain text mode 
    Last edited by jacek; 21st July 2006 at 16:52. Reason: corrected a typo

  3. #3
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,258
    Thanked 862 Times in 811 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: need help about calibrating scanned maps.

    Have a look at http://www.terralib.org.

    Here you find different types of projections,

    Uwe

  4. #4
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,716
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: need help about calibrating scanned maps.

    Thanks both of you, I'll look it up.

  5. #5
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,716
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: need help about calibrating scanned maps.

    If anyone needs this in the future I found this:
    http://digitizer.sourceforge.net/

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.