Before the rush

Before the rush
by evan-pak

Submit your Photo
Hall of Fame

Please participate in Meta
and help us grow.

Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What are deflicker algorithms used to deflicker stills that should be composed to a timelapse movie?

(Flickering caused by shutterspeed adjustments in sunset/sunrise shots...)

share|improve this question
Are you asking for a definition, or for specifics of algorithms, or for software recommendations? – MikeW Feb 4 '13 at 10:10
I'm asking for a definition. So as: gather the avergage luminance of a stack of stills, than compute blahblah ;-) – matcauthon Feb 4 '13 at 10:13
If you want an algorithm, I could right one in python. – Onlyjus Feb 4 '13 at 17:59
up vote 7 down vote accepted

I have no idea what algorithms commercial software uses for this task, but I'll happily make one up for you:

  1. Find the luminance of frame 0 by summing pixel values.

  2. For each frame (i): subtract frame (i+1) from frame (i), take the mean of these delta values. To account for movement, remove any pixels with delta greater than some threshold (set based on the noise level) and recompute the mean delta. Add this delta to the luminance of image (i-1) and s

  3. Now we should have an array of absolute brightness levels of each image in the sequence. For each value compute the moving average, that is replace value (i), with (sum(k = i-w to k = i+w) luminance(k)) / 2w for some window size w. Choose w based on the amount of flickering. For the first and last w frames of the sequence you can just use a constant target luminance (there aren't enough frames available to calculate an average).

  4. Transform each image from it's original luminance to the new target luminance (the result of the moving average operation).

Do this independently for all colour channels and you'll also smooth any changes in colour.

share|improve this answer

If you like programing, I found a link to a python project that will do exactly what you want. It will also interpolate between frames if you are missing a couple.

share|improve this answer
Oo. Sweet. I will have a look at that! – matcauthon Feb 4 '13 at 18:19

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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