Image Registration using OTB

Configuration setup

My system: Ubuntu 18.04
Version of the OTB: 7.2
I installed the OTB with: the binaries, the Debian package management, the SuperBuild, other?

If relevant, you may also provide:
QGIS version: 3.16
Python version: 3.7?

Description of my issue

I have two images from two different time periods that are not registered (don’t align) as shown below.

I understand that image registration is possible using OTB’s FineRegistration feature so I tried to do so.

My error message


2021-03-05 16:03:55 (INFO) FineRegistration: Default RAM limit for OTB is 256 MB
2021-03-05 16:03:55 (INFO) FineRegistration: GDAL maximum cache size is 1602 MB
2021-03-05 16:03:55 (INFO) FineRegistration: OTB will use at most 12 threads
2021-03-05 16:03:55 (INFO) FineRegistration: Reference image : /home/ashwin/Downloads/2016_test.tif
2021-03-05 16:03:55 (INFO) FineRegistration: Secondary image : /home/ashwin/Downloads/2014_test.tif
2021-03-05 16:03:55 (INFO) FineRegistration: Exploration radius: [10, 10] (pixels)
2021-03-05 16:03:55 (INFO) FineRegistration: Metric radius : [15, 15] (pixels)
2021-03-05 16:03:55 (INFO) FineRegistration: Sub-sampling rate : [1, 1] (pixels)
2021-03-05 16:03:55 (INFO) FineRegistration: Coarse offset : [0, 0] (physical unit)
2021-03-05 16:03:55 (INFO) FineRegistration: Convergence Accuracy : 0.01 (physical unit)
2021-03-05 16:03:55 (INFO) FineRegistration: SubPixel Accuracy : 0.01 (physical unit)
2021-03-05 16:03:55 (INFO) FineRegistration: Reference image gaussian smoothing : OFF
2021-03-05 16:03:55 (INFO) FineRegistration: Secondary image gaussian smoothing : OFF
2021-03-05 16:03:55 (INFO) FineRegistration: Metric : Cross-correlation
2021-03-05 16:03:55 (FATAL) FineRegistration: itk::ERROR: FineRegistrationImageFilter(0x231a6d0): Inputs do not occupy the same physical space!
InputImage Origin: [7.7809500e+05, 2.5808890e+06], InputImage_1 Origin: [7.8067100e+05, 2.5839550e+06]
Tolerance: 2.0000000e-06

From the error message, it’s clear the problem is that my two images don’t share the same origin. However isn’t this what registration is supposed to fix? How can I fix this issue so that I can register the two images?

Dear @ashnair1,

The FineRegistration application has a major limitation: The input images should have the same size and same physical space.

Moreover, the FineRegistration application is meant for very small shift between the two image (a couple of pixels max). If you deal with a bigger shift, you may want to look at this recipe in the cookbook.

Sincerely.
Julien.

So how can we use this recipe via the OTB Application? Do we compose a workflow of some sort? I’m new to OTB so I’m not sure how to utilise this recipe to do this process.