Main Content


Image pyramid reduction and expansion



B = impyramid(A,direction) computes a Gaussian pyramid reduction or expansion of A by one level. direction determines whether impyramid performs a reduction or an expansion.


collapse all

Read image into the workspace.

I = imread('cameraman.tif');

Perform a series of reductions. The first call reduces the original image. The other calls to impyramid use the previously reduced image.

I1 = impyramid(I, 'reduce');
I2 = impyramid(I1, 'reduce');
I3 = impyramid(I2, 'reduce');

View the original image and the reduced versions.

figure, imshow(I)

figure, imshow(I1)

figure, imshow(I2)

figure, imshow(I3)

Input Arguments

collapse all

Image to reduced or expanded, specified as a numeric or logical array.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Reduction or expansion, specified as one of the following values:

"reduce"Return an image, smaller than the original image.
"expand"Return an image that is larger than the original image.

Data Types: char | string

Output Arguments

collapse all

Reduced or expanded image, returned as a numeric or logical array, the same class as A.


If A is m-by-n and direction is "reduce", the size of B is ceil(M/2)-by-ceil(N/2). If direction is "expand", the size of B is (2*M-1)-by-(2*N-1).

Reduction and expansion take place only in the first two dimensions. For example, if A is 100-by-100-by-3 and direction is "reduce", then B is 50-by-50-by-3.

impyramid uses the kernel specified on page 533 of the Burt and Adelson paper:

w=[14a2,14,a,14,14a2], where a = 0.375. The parameter a is set to 0.375 so that the equivalent weighting function is close to a Gaussian shape. In addition, the weights can be readily applied using fixed-point arithmetic.


[1] Burt and Adelson, "The Laplacian Pyramid as a Compact Image Code," IEEE Transactions on Communications, Vol. COM-31, no. 4, April 1983, pp. 532-540.

[2] Burt, "Fast Filter Transforms for Image Processing," Computer Graphics and Image Processing, Vol. 16, 1981, pp. 20-51

Extended Capabilities

Version History

Introduced in R2007b

expand all

See Also