Sometimes I have images where the shake motion is not linear but it can be guessed from lights and similar point-like details. I am aware that this photo is low quality, it's simply the latest one I wanted to improve.

How can I remove that shake? I'm working on Windows.

I already found this promising MATLAB script but I don't have Matlab.

enter image description here


Using blurity with a custom blur model (a single light trail) isolated manually and loaded separately I obtained the following result.

enter image description here

If there were fewer JPG artifacts, the result would have been quite good!


Try these links:

However, the best way to avoid blurred pictures is to practice better photography and avoid hand shakes while clicking. Try to take pictures in better light if you're just using a mobile camera - OR use a better camera like a DSLR - but that takes you on a different path of learning photography altogether.

  • Sometimes the photos are not taken by me but I try to get the most out of friend's photos :) – FarO Jan 4 '18 at 12:25

Photoshop CC has a Shake Reduction filter to try to remove motion blur. However, your particular example image might not be well suited to the blur removal feature. From Adobe's help page about the Shake Reduction filter:

The camera shake reduction feature works best with decently lit still camera images having low noise. The following types of still images are particularly suitable for shake reduction:

  • Indoor or outdoor images captured using a lens with a long focal length
  • Indoor images of a static scene taken with a slow shutter speed and no flash

However, it's an impressive feature, and for the images best suited for it, the filter does an impressive job.

  • I didn't try it because I thought it's for linear motion, but in fact it also corrects "several types of camera motion; including linear motion, arc-shaped motion, rotational motion, and zigzag motion." Now I'm curious to compare the plugin and that MATLAB script... – FarO Jan 4 '18 at 9:29

I simply don't try to do anything with it. I have actually captured many of these type of images, of course, unitentionally, and posted them with the caption Shakiness of the Modern Life! and believe me, those pics got more than 100 likes!

  • The question is "how to remove shake from images". Your suggestion is not related and also applicable only in limited cases. What if I needed to read text from a sign in a shaken image? – FarO Jan 4 '18 at 9:31

MIT has done some work on this, you have already found it: https://cs.nyu.edu/~fergus/research/deblur.html , and indeed it points to Matlab code. There exist open source replacements for Matlab, but not if you also need expensive image processing libraries.

Beware, de-blurring is a de-convolution, essentially a high-pass filter. Any noise and compression artefacts in the image will be amplified without mercy.

An interesting development is the "flutter shutter" or "coded aperture", where the shutter opens multiple times so that the blur is easier to invert (no deep zeroes in the transfer function). This is an application of "computational photography". You are more likely to find this in an expensive smartphone than in a plain old camera.

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