http://www.perlmonks.org?node_id=11145222


in reply to Abstract image registration or feature detection [UPDATED w examples]

> What I want is to determine the coordinates of these "target" points, based on the transformation determined by the corresponding "known" points.

could you please elaborate? Do you know the corresponding point pairs (known_i,target_i)?

There are many "transformations", I remember seeing a projection model based on a 4x4 matrix in uni.

Determining the entries would mean to solve the resulting linear equations.

Again it depends on the class of allowed transformations.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

  • Comment on Re: Abstract image registration or feature detection

Replies are listed 'Best First'.
Re^2: Abstract image registration or feature detection
by kikuchiyo (Friar) on Jul 01, 2022 at 15:58 UTC

    > could you please elaborate? Do you know the corresponding point pairs (known_i,target_i)?

    Each known_i and target_i point represents an unique named feature of the original image, and their locations (thus, the vectors between any two known_i and target_j point) are fixed on the reference image.

    > There are many "transformations", I remember seeing a projection model based on a 4x4 matrix in uni.

    The list of possible transformations include translation, rotation, skewing (so all affine transformations) plus barrel distortion, lens distortion etc. Think of a reference version of a poster in an image authoring software vs. the same poster photographed with a potato camera, not necessarily from a head-on orientation.

      > the vectors between any two known_i and target_j point

      I'm confused. Did you answer if you know which target point belongs to which source point or if you need to determine those "vectors"?

      > Think of a reference version of a poster in an image authoring software vs. the same poster photographed with a potato camera, not necessarily from a head-on orientation.

      Please take this for a start Camera Matrix

      It's a 3x4 matrix I remembered 4x4, so there might be more.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

        It seems that we're not on the same page. A picture is worth a thousand words: https://imgur.com/KxH62Sa

        Each labeled red point from the reference image corresponds to the same labeled red point on the distorted image. And I know the coordinates for both. Similarly, one blue point on the reference image corresponds to one blue point on the distorted image, but I only know their coordinates on the reference, and I want to find them on the other.

      translation, rotation, skewing (so all affine transformations)
      You'll probably have more points than parameters in the affine transformation matrix, making this an overdetermined linear system. This is good: you can solve it in the least squares sense and handle a bit of the noise in the coordinates this way.
      plus barrel distortion, lens distortion
      This could be harder, because it's definitely not linear. Panorama stitching software like Hugin can let you optimise the radial distortion parameters at the same time as optimising the affine transform matrices; maybe you could look at its source code for some inspiration. Wikipedia lists a formula for a generalised distortion model, which you could fit the parameters for using Levenberg-Marquardt.