remove spatial sinusoid noise from 2d image
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).