[X-post, F'up2 cut down by me, should have been done by you!]
>
> >
> > Basically let the camera take it's picture though user's hand is
> > shaky, and use a mechanism to record down the angle of user's
> > handshake in steps of 1us,
I doubt that you'll find any good angular sensors that respond that quickly in the price range needed for digital cameras.
> 1 microsecond won't do you any good. No human can move anything at a
> frequency of 1 MHz.
>
> Anyway, what happens during the exposition for a single frame will be
> completely impossible to correct for after the fact. That's why some
> current consumer cameras do this in a different way: they use movable
> parts in the optical system to compensate shaking *before* any light
> hits the sensors. That's the only way it becomes possible to do
> in-frame shake compensation.
I think that it MAY be possible to do some after-the-fact motion compensation on a single frame. You treat each pixel as integrator which sums the light input over the exposure time. If you have some knowledge of the image motion on the focal plane during the exposure, you have a better handle at undoing the motion blur.
> > now I get V = [v0, v1, ...v(n-1)]; With this vector, I calculate
> > displacement vector the image has moved in terms of number of pixels
> > P.
>
> Displacement alone is also useless. You also have to take care of
> rotation --- that's actually more important than displacement.
Don't forget that the displacement at the pixel plane is a function of the focal length of the lens. You would need to know both angle and direction of motion as well as the focal length to compute image displacement in pixels.
Mark Borgerson