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?


1 Answer 1


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).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.