remove spatial sinusoid noise from 2d image Given a 2D image where each row of pixels is shifted by some amount horizontally in a sinusoid fashion, is it possible to recover the original image?



Imagine a camera that can capture one row at a time, and is moved vertically to capture the whole image. While it is moved, the camera vibrates, resulting in noise similar to above picture.

If there is a known reference object that spans the entire height of the picture, such as a vertical bar, this is simple enough to solve.
But can you detect and correct this sort of noise if there is no fixed object in the picture?

If that is not possible, what if you assume some limits for the noise: the approximate amplitude and frequency can be known, but not the phase. Is there a solution under these constraints?
Here is one approach to try:

This problem is about finding the correct re-indexing algorithm for pixel values at every raw. 

For each raw we can search for possible shifts optimizing some cost function that represent the correct alignment. The cost function will take the raw intensities and two neighboring raw's (upper and lower raw's) as input parameters.  The output of the cost function should represent a smoothness/continuity measure.

Possible cost function to experiment with: 


Minimizing total variation 
$l_{1}$ norm minimization in some transform basis.


Constraints on the sine function can be used to improve the optimization algorithm. If you assume a narrow range for pixel shifts you should be able to use a brute-force approach ( searching for all possible shifts).