# Interpolating between consecutive weather radar images

I have a series of rainfall intensity images from a weather radar taken every 10 minutes. My goal is to generate intermediate frames in order to create a slow motion video. I've tried using the Farnebeck motion interpolation / optical flow algorithm implemented in OpenCV but the results were... not too bad but definitely not satisfactory.

What are some other ways to approach this problem? I was thinking that maybe something vaguely similar to Hidden Markov Models could work because the problem can be modelled as a Markov chain, where each state consists of an observed part (rainfall intensity image) and an unobserved part (wind speed and direction, etc.). The intermediate frames would be fully unobserved.

Or, I've seen impressive results of motion interpolation via deep neural networks, but they were trained on high FPS videos. I don't have the intermediate frames available for training the neural network.

• I would use the textbook methods from particle image velocimetry to make a vector field. It is a mature field, the methods are robust and well-built. Basically you break it up into chunks of a certain minimum size, find the best chunk in the new space for the cross-correlation, and iterate, get general trend, then given the constraint of that trend try again and clean up the errors. This paints first very broad strokes, then more fine strokes. It also works with the cloudlets. – EngrStudent Oct 3 '18 at 17:53

I would use a discrete Fourier transform approach. Suppose that in your map are only grey points and that the grey intensity goes from zero to 255. The grey level of each point depends from time $$t$$ and position $$(x,y)$$: $$g_{txy}$$. If we have a sample of $$n$$ time points, we can compute its discrete Fourier transform to have a function $$g_{xy}(t)$$ that is time-continuous.
If the sampling sequence is: $$t_1, t_2... t_n$$, we can perceive in the point $$(x,y)$$ the grey levels $$g_{t_1xy}, g_{t_2xy}… g_{t_nxy}$$. Performing the discrete Fourier transform you will obtain a continuous time function which value in each instant is the grey level of this point in the map: $$g_{xy}(t)$$.
If you want a coloured map, you can perform the discrete Fourier transform for the red component of the $$(x,y)$$ point, for the green component and for the blue component.