Is there a generically accepted method of removing motion blur from an image. For a simple case, we can assume that motion happens in a straight line. I assume that it's a two part process composed of motion estimation and then deconvolution, but how is it actually done?
Yes, deconvolution. This page describes a number of deconvolution methods and methods for estimating the point spread function:
They say the deconvolution literature is "extremely extensive". They choose Lucy-Richardson algorithm for deconvolution and develop their own motion estimation algorithm for determining the point spread function.
Removing motion blur, with the exception of blur from either point source objects, or near point source objects, can be quite difficult. The general steps are as follows. Note, some of this information comes from a paper entitled "PSF estimation using Sharp Edge Prediction".
- Find the equivalent PSF for the motion blur. This may vary in different regions of the FPA, depending on how wide the lens is, and what kind of motion it is subject to. The easiest way is to find a point source object, and find it's PSF. This can be accomplished if the background is uniform, especially if it is uniformly dark, such as stars. A more complex method could involve looking for edges, and seeing the effective PSF at that edge. The edge will give you a one dimensional PSF, but can be used to find a complete PSF.
- Using the PSF, deconvolve the image. As Endolith previously mentioned, there is a plethora of deconvolution algorithms, choose one to meet your needs.
Just an idea: maybe one should study some HDR imaging for this task. There is a paper about radiometric camera calibration for composing correct HDR images. It is shown that there is a huge difference between the images resulting by applying synthetic motion blur on LDR and HDR images.
There is a page for this: http://ict.debevec.org/~debevec/Research/HDR/
Motion blur on LDR and HDR images: