Hybrid Images
This post is about hybrid images with Python. I will be following the approach described in the SIGGRAPH 2006 paper.
Approach #
The technique described in the paper takes a pair of images, and takes the high frequency of 1st image and the low frequency of the 2nd image.
The low pass filter is taken using the Gaussian filter.
low_pass = gaussian_filter(image_1)
The high pass filter is taken by taking the original image minus the Gaussian filter of the image.
high_pass = image_2 - gaussian_filter(image_2)
The images are then blended together using an average between them.
final_image = (high_pass + low_pass) / 2
The Gaussian filter uses a kernel size that is determined by the sigma. Sigma is calculated through the formula f_c = 1 / (2 * pi * sigma)
which is formula for the cut off frequency for the Gaussian filter. This lets me experiment with different cycles/image for each image.
Results #
Boyhood #
The following images are from the movie Boyhood by Richard Linklater. The film was shot over 12 years and used the same actors throughout the process. The hybrid images below are created from separate points in time of the main character’s life.
Original Image to be high passed
Original Image to be low passed
Time #
Original Image to be high passed
Original Image to be low passed