The hybrid images algorithm is divided into two parts. The first part takes each input image and creates both a gaussian and laplacian pyramid. The second part takes these pyramids and uses them to create a low pass filtered version of one image and a high pass filtered version of the other image. These images are then merged to create the final hybrid image.
The first level of the gaussian pyramid is simply the input image. Subsequent levels are created by low pass filtering the previous level and scaling it by half. The low pass filter that seemed to work the best was a 5x5 gaussian kernel. The levels of the laplacian pyramid are created by subtracting the filtered version of the image from the unfiltered version. An example of the gaussian and laplacian pyramids for an image are shown below.
Once we have both sets of pyramids we can create the hybrid image. First we create a low pass filtered version of one image by collapsing the N coarsest levels of the laplacian pyramid. We then create a high pass filtered version of the other image by collapsing the M finest levels of the other laplacian pyramid. Both N and M are user specified and must be modified to acheive the best results on a per image basis. Below is a table of hybrid images of an owl and a lemur where both N and M have been varied. N increases vertically, and M increases horizontally.