Table of Contents
pyrmask - Blend two images together using Gaussian pyramids.
pyrmask
[ -l levels ] [ -o outfile ] inmask outmask maskfile
Pyrmask
blends two images together by first breaking the images down into separate
bandpass images, combining these separate images, and then adding the new
bandpass images back into a single output image. This can produce very
seamless blends of digital images. The two images are combined on the basis
of a third "mask" image. The resulting image will contain the inmask image
where the mask contains a maximum value (255) and the outmask image where
the mask contains zeros. This is done on a channel by channel basis, i.e.
the maskfile should have data in each channel describing how to combine
each channel of the inmask and outmask images. All three images must have
exactly the same dimensions (both image size and number of channels). For
best results, it's often useful to filter the mask image a little with smush(1)
first.
- -l levels
- How many pyramid levels to use (maximum is log(2)
of image size).
- -o outfile
- If specified, output will be written to this file,
otherwise it will go to stdout.
smush(1)
, rleswap(1)
, urt(1)
, RLE(5)
,
Burt and Adelson, "A Multiresolution Spline With Applications to Image
Mosaics", ACM Transactions on Graphics, October 1983, V2 #4, p. 217.
Ogden, Adelson, Bergen and Burt, "Pyramid-based Computer Graphics", RCA
Engineer, Sept/Oct 1985, p. 4.
Rod Bogart
The current implementation
has very strict requirements for image sizes and dimensions. The extensive
use of floating point computation makes it very slow for normal sized images.
It also keeps all of the bandpass images in core at once, which requires
considerable amounts of memory.
Pyrmask is built on top of a library of
functions for working with Gaussian pyramids. This library has yet to be
documented or fully tested.
Table of Contents