Remove transient details from image sequence

Vanish is an image processing tool that takes an image sequence and removes any transient details from it, producing a single image of the stable background.

Input sequence

Reconstructed background

The processing works on a pixel-by-pixel basis by classifying pixels in each input color channel into buckets, and then finding the mode–the biggest bucket–for each pixel. The final image is then reconstructed from the original pixel values, using the mode bucket to either accept or reject any given frame.

Bucketing is used because small movements, lighting variations and sensor noise cause minor variations in intensity at any given pixel even in stationary features. In places where pixel intensities cluster around a bucket boundary, there is an issue with the entries potentially being split across two buckets. Adding an extra set of buckets, offset by half the bucket size, takes care of this splitting problem.

Vanish is available on GitHub at: