I took a timelapse last night, using flash. It's around 300 frames and it was taken in manual, 1/60th, ISO400, f/2.8. But all the images have slight exposure differences due to my strobes.

I understand that "very expensive studio strobes" wouldn't have this problem and will always give consistent exposure, but mine are just YN-560III and IV. This is never a problem with still photos since it's not appreciable. And even if it is, a handful of images can be tweaked later. But the flicker is very obvious in a timelapse video.

So, is there a tool that I can use to automatically normalize the exposure level of a bunch of still images?

(as for why I used strobes: the subject was a flower that opens only one night every year and then it dies. last year I used continuous light and the flower didn't open fully. this year, with the strobes, it did - so strobes were the correct choice for this very particular subject).

Edit: I've tried Lightroom's "match total exposure" tool but this doesn't work. From what i've been reading, this tool changes the exposure value based on the metadata (ISO, time, aperture). So it will compensate for photos where exposure is different from camera auto-exposure for exmple, but not for M mode where all photos have the same settings.

  • \$\begingroup\$ Do you work with RAW images? match total exposure work much better with them \$\endgroup\$ Commented Dec 2, 2021 at 12:20
  • \$\begingroup\$ @RomeoNinov no, for this project, because of SD card size, I went with JPEG \$\endgroup\$
    – hjf
    Commented Dec 2, 2021 at 13:30
  • \$\begingroup\$ Did you export the images after the operation? \$\endgroup\$ Commented Dec 2, 2021 at 13:43
  • \$\begingroup\$ yes, no change in output. When I do "match total exposure" it takes only a couple of seconds so it's really not doing anything. \$\endgroup\$
    – hjf
    Commented Dec 2, 2021 at 13:48
  • \$\begingroup\$ Are the images marked as edited? \$\endgroup\$ Commented Dec 2, 2021 at 14:25

3 Answers 3


I ended up using this tool: https://github.com/StruffelProductions/simple-deflicker/ which is a bit quirky but does the job perfectly.

Previously I tried this ImageMagick script: http://www.fmwconcepts.com/imagemagick/histmatch/index.php which, apparently, does the same. But for some reason, the whitest parts (clipped maybe?) appeared as pink.


If I was planning this from the start I'd have white and black background regions in the field of view (probably at the edges so they could be cropped out). The white region is more important than the black, and they need to be in a consistent position. These are the calibration regions.

Hopefully you have a consistent bright background region you can use.

Then I'd write a Python script using PIL. This would:

  • For each image, sum each white calibration region to give a white point value for that image, in the form of an RGB triplet.
  • For each image, multiply every pixel value by the white point RGB triplet of the brightest image, divided by the white point RGB triplet of that image.

This should be enough; the black calibration value could be used to offset the black point if the exposures differed by too much for the above approach to work, but for nominally the same exposure and lighting it shouldn't be an issue.

Compared to histogram matching this should work better when a region changes significantly on constant background, such as a pale flower opening to cover dark leaves, with a white wall behind.

It could also be scripted in ImageMagick, but I'd find Python easier


One tool which can do the work is Lightroom. There you select all the images, mark as base image with good exposure and then Setting > Match Total Exposures (or use shortcut Alt+Shift+Ctrl+M on PC, Alt+Shift+Command+M on Mac) This function work best with RAW files.


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.