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...)

  • \$\begingroup\$ Are you asking for a definition, or for specifics of algorithms, or for software recommendations? \$\endgroup\$
    – MikeW
    Commented Feb 4, 2013 at 10:10
  • 1
    \$\begingroup\$ I'm asking for a definition. So as: gather the avergage luminance of a stack of stills, than compute blahblah ;-) \$\endgroup\$
    – matcauthon
    Commented Feb 4, 2013 at 10:13
  • 1
    \$\begingroup\$ If you want an algorithm, I could right one in python. \$\endgroup\$
    – Onlyjus
    Commented Feb 4, 2013 at 17:59

2 Answers 2


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.


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.


  • \$\begingroup\$ Oo. Sweet. I will have a look at that! \$\endgroup\$
    – matcauthon
    Commented Feb 4, 2013 at 18:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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