I know of some oscilloscopes (DSA8300) that repeatedly sample at a few hundred kS/s to reconstruct a few GHz signal. I was wondering if this could be extended to 2D signals (photographs). Can I take a series (say 4) of still pictures using a commercial 16MP camera to finally reconstruct a 32MP image? Will doing this remove aliasing I have from each image?

Should such a thing be attempted from a single image it would obviously not work as no new information is being introduced. If all the pictures taken are absolutely identical, will I still be at the same point as having one image? So are variations essential? Is CCD / CMOS noise enough variation for such a thing to work?

Is there a name for such a technique or algorithm? What should I look for?

  • $\begingroup$ CCD noise wouldn't help you, but physical movement of the camera could. Taking multiple pictures of an identical scene with an identical camera in an identical position would only allow you to reduce noise, not reduce aliasing. You're still measuring the same points. Taking pictures offset by less than one pixel from each other, however, would give you an effectively higher sampling rate, helping to remove aliasing. $\endgroup$ – endolith Oct 26 '12 at 14:28
  • $\begingroup$ I have a Nikon DX with a width of 23.6mm and has 4928 pixels on that dimension. This accounts to the width of each photosite on the sensor ~ 4.7889 microns. So should I move my camera along the width axis by fractions of this amount? Say 10 pictures by moving my camera 0.47 microns each time? And the same along the height? This hardly sounds like a weekend project with off the shelf stepper motors :'-( $\endgroup$ – Lord Loh. Oct 26 '12 at 18:15
  • $\begingroup$ As an after thought, I was wondering, can I use multiple photos from a single shot of Light Field Camera (Lytro) with different focal planes to reconstruct a super resolution image? Intuitively, I think It will not work :-/ $\endgroup$ – Lord Loh. Oct 26 '12 at 18:55
  • 1
    $\begingroup$ No, it depends on the distance to the target, optics, etc. Imagine a ray shooting out of each pixel of your camera, being bent by the lens, and hitting your target, so it's covered by a rectangular grid of points. Those are the points that each camera pixel sees. If the target is a wall covered in stripes, and the stripes alternate multiple times between each of your grid points, then you're going to have aliasing. $\endgroup$ – endolith Oct 26 '12 at 21:36
  • $\begingroup$ That now makes sense :-) a 0.4 micron movement in that case is practically no movement at all! $\endgroup$ – Lord Loh. Oct 26 '12 at 22:02

One word for that technique is superresolution.

Robert Gawron has a blog post here and the Python implementation here.

Usually, this technique relies on each image being slightly offset from the others. The only gain you'd get from not moving between shots would be to reduce the noise level.


Intuitively, if You move the sensor $ N $ steps each at the size of $ \frac{1}{N} $ of its resolution you can get $ \times N $ more resolution.
It is like a polyphase representation of the signal.

Using estimation methods, any movement which is not an (Event with zero probability) integer multiplication of the resolution of the sensor, namely, fractional movement can be used to gather more data and enhance resolution.

Usually those methods are called Super Resolution which is fancy name for Poly Phase representation and sampling and are sub problem in the Inverse Problem family in Image Processing.

Yet, pay attention that many papers deals with Super Resolution yet the actually solve a different problem (Deconvolution of Single Image).
While the problem you're after is also in the field of Inverse Problems, yet using multi images.

I think the method you are after is mainly used in the Lithography industry.

  • $\begingroup$ That is what I had initially thought. That I would have to move in sub-micron range, but this - mathworks.com/matlabcentral/fileexchange/… does not take such an approach and gives a decent image improvement - may be it is getting information from sub-photo sites by moving the camera slightly randomly instead of systematic 1/N step movement. $\endgroup$ – Lord Loh. Mar 26 '14 at 23:35
  • $\begingroup$ Hi, As I wrote, using estimation techniques any movement (Unless it is integer multiplication of the sensors cells) could be used to infer more data. $\endgroup$ – Royi Mar 27 '14 at 12:54

Another word is "stacking". It is used to reduce CCD noise, to increase focal depth (by stacking images that are focused slightly differently), to improve very low-light astronomical photos, and to obtain high dynamic range (HDR) from a series of normal range images. See





Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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