I am using cross-correlation for the purposes of image stabilisation. The images which I'm processing can sometimes be rather large. The contents of the image are often repeating patterns. For these reasons I'd like to leverage the Fast-Fourier transform in order to speed up computation time.

Currently, I am using the scipy.signal.correlate2d method in Python to find the cross-correlation between two arrays. Sadly, I'm unable to find an FFT method for this operation. However, there is a scipy.signal.fftconvolve function which convolves my two arrays incredibly quickly. I'd like to use this function (convolution) to find the correlation between two matrices. I understand they are similar, but I don't understand them well enough to know if this can be done.

For reference, I'll attach some figures that I've generated. These may or may not prove to be useful for context.

[![The convolution between my two arrays (padded with zeros)](https://i.stack.imgur.com/jALCz.png)](https://i.stack.imgur.com/jALCz.png)

[![The cross-correlation between my two arrays](https://i.stack.imgur.com/u6Ciu.png)](https://i.stack.imgur.com/u6Ciu.png)