Skip to content

Deflickering

Lukáš Karas edited this page Jan 29, 2016 · 3 revisions

Shutter time can be little bit different between two photo captures, although camera setting is same. It isn't problem for single photo, but when these frames are composed into timelapse video, it creates unwanted flickering.

Deflickering tool can be used for "normalize" luminance in series of images and remove flickering effect in timelapse videos. It is inspired by similar Perl tool - timelapse-deflicker.

Usage: timelapse_deflicker [options] source(s)
Tool for deflicker sequence of images.

Options:
  -h, --help                Displays this help.
  -v, --version             Displays version information.
  -o, --output <directory>  Output directory.
  --wm-average <count>      Use weighted moving average for luminance.
                            Argument specified count of previous images for
                            compute average.
  -d, --dryrun              Just parse arguments, check inputs and prints
                            informations.
  -w, --debug-view          Composite one half of output image from original
                            and second half from updated image.
  -V, --verbose             Verbose output.

Arguments:
  source(s)                 Source images (images or directories with images).

By default, this tool uses two phases. First phase reads all sources and compute average luminance from them. Second phase apply gamma correction to each frame to reach computed average luminance and writes frames to output directory.

In some cases is this behavior unwanted and result looks unrealistic (sunrise timelapse for example). For such cases is better use weighted moving average for computing target luminance (--wm-average).

Experimenting with parameters

For testing can be used --debug-view option, that combine original frame and final frame after gamma correction side-by-side. And don't forgot turn on verbose output by --verbose :-)

Sunrise Timelapse - deflickering tool test

Clone this wiki locally