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

> 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.

Replies are listed 'Best First'.
Re^3: Abstract image registration or feature detection
by LanX (Sage) on Jul 01, 2022 at 16:08 UTC
> 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.

Thanks the image is much clearer.

As I said, solve the linear equations° for the red pairs to determine the projection matrix. (well depending one the number of known pairs)

Once you have the matrix you can pair the blue ones too.

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

##### update

°) Linear_equation_system#Matrix_equation

Re^3: Abstract image registration or feature detection
by Anonymous Monk on Jul 02, 2022 at 19:43 UTC
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.