GFZ / arosics

AROSICS - Automated and Robust Open-Source Image Co-Registration Software
https://git.gfz-potsdam.de/danschef/arosics
Apache License 2.0
137 stars 26 forks source link

Tie points (help) #10

Closed Weixing-Zhang closed 2 years ago

Weixing-Zhang commented 2 years ago

I was trying to extract the final tie point by using the global approach - CoReg. According to the workflow chart (Figure 1) of the approach in the paper, I thought that the tie point will be the input for the next step. I wonder how I may be able to export the tie point information. Any help is much appreciated.

iScreen Shoter - 2022-04-19 15:30:30 868

danschef commented 2 years ago

Hi @Weixing-Zhang!

In case of the global approach, the tie point is stored internally and used as input for image warping. You can access it like this:

CR = COREG('ref.tif', 'tgt.tif') 
CR.calculate_spatial_shifts()
CR.x_shift_map  # x-shift in map units
CR.y_shift_map  # y-shift in map units
CR.x_shift_px  # x-shift in pixels
CR.y_shift_px  # y-shift in pixels
CR.vec_angle_deg  # angle of shift vector in degrees
CR.vec_length_map  # shift vector length in map units

Does this help?

Weixing-Zhang commented 2 years ago

Hi @danschef,

Understood. That's what I have figured so far.

My understanding of tie points is that they are the common locations within the overlap areas so they will have x and y for the reference and target images. I thought there is a tie point grid table like the one from the local method. In the current design of the arosics, this information was represented by x- and y-shift so the actual x and y for the reference and target images can be easily derived. That makes sense.

Thank you so much for the confirmation.

danschef commented 2 years ago

Well, the thing is that the global approach does not generate a grid of tie points but only computes a single (global) shift between the reference and the target image (see the paper for more details). That´s why, you will also not find a table of tie points.

If you need the coordinates of the corresponding pixels in the reference and target image, use CR.win_pos_XY and add the computed X/Y shift to get the coordinate from the other image.

Weixing-Zhang commented 2 years ago

Using the CR.win_pos_XY and shift values does the job.

Thank you so much for the explanation. I am closing this help ticket.