Class SimilarTransformBuilder


  • public class SimilarTransformBuilder
    extends ProjectiveTransformBuilder
    Builds MathTransform setup as Similar transformation from a list of MappedPosition. The The calculation uses least square method. The similar transform equation:
      [ x']   [  a -b  Tx  ] [ x ]   [ a*x - b*y + Tx ]
      [ y'] = [  b  a  Ty  ] [ y ] = [ b*x + a*y + Ty ] 
    In the case that we have more identical points we can write it like this (in Matrix):
      [ x'1 ]      [ x1 -y1  1 0 ]   [ a  ]
      [ x'2 ]      [ x2 -y2  1 0 ]   [ b  ]
      [  .  ]      [      .      ]   [ Tx ]
      [  .  ]      [      .      ] * [ Ty ]
      [ x'n ]   =  [ xn  yn  1 0 ]
      [ y'1 ]      [ y1  x1  0 1 ]
      [ y'2 ]      [ y2  x2  0 1 ]
      [  .  ]      [      .      ]
      [  .  ]      [      .      ]
      [ y'n ]      [ yn xn  0  1 ]
        x' = A*m  
    Using the least square method we get this result:
    m = (ATA)-1 ATx'
    Since:
    2.4
    Author:
    Jan Jezek