Search code examples
imageimage-processinglinear-algebraimage-registrationtransformation-matrix

The relationship of transformation matrix in image registration and image scale


I am currently doing image registration using the 'Registration estimator' application.

Basically, the application allows the user to register two images using multiple methods and the output includes transformation matrix.

The question is, now I want to register two large images, the size of the two images are 63744*36064 and 64704*35072. It's almost impossible to directly register two images since they are too large.

The methods I use is to first obtain the scaled images for registration and derive transformation matrix and apply that matrix to the original images.

However, I found that even for the same image, different transformation matrices are obtained at different levels.

For example, the transformation matrix for images at sizes: 3984(63744/16)*2254(36064/16) and 4022*2192 is different from 1992*1127 (1/32) and 2022*1096 (1/32).

In that case, I am confused about the relationship between sizes and the transformation matrix. Could anyone give me a hint so that I can precisely register two original images based on the transformation matrix I have for the images at a lower level (smaller size)?


Solution

  • Downsampling an image has direct effect on translation matrix. Suppose for example that there is 2 pixel translation in x direction, downsapling by a factor of 2 changes it to 1 pixel. Whereas its easy to compensate this effect for registering original images, you should avoid downsamplind images if there's memory constrain, since you may lose invaluable key-points used for robust registration. Instead, you can slice your images up into several sub-images, extract the features in each sub-image, combine the features and match them.