I have some data (left image), with the second image taken at some t (right image). There is a shift in my images, with the masked portion of the image representing a physical piece that does not move relative to the 'rings' seen in the images (and is masked out for image clarity):
Now, by eye, they look nearly identical; however, I'm interested in the difference between these two images. The difference of the two images is shown here, with darker blue being a negative value and yellow being a positive value:
It is clear that there is a slight shift to the right (the left of the rings is always negative, and the right of the rings are always positive, uniformally around the image).
I am trying a means to effectively compute the shift between these images; I have tried masked_register_translation
from skimage
, but it is slow, and does not register any shift (this is likely due to the presence of 'hot spots' that are not shifting). Even if I were to mask these and apply some sort of median blur, the shift is incredibly slow and not particularly accurate.
Using peaks from the rings is difficult as no pronounced peak is visible.
I am unaware of any reliable 2D methods for calculating such a 'few pixel' shift - if there are any means of doing this more quickly and effectively relative to the skimage
option, I would be more than grateful to hear!