Method for designing and applying a Kaiser window filter for enlarging or reducing an image
AssigneeE. I. Du Pont de Nemours and Company
InventorsMichael J. Piovoso, Mark D. Wetzel, James A. Whitcomb
Life of this patent
Estimating the term…
Abstract
The present invention relates to a method of designing a Kaiser window filter. The filter is applied to an input image to generate a resized output image while preserving the information content of the input image. The method of mapping the output image space to the input image space of the present invention aligns the boundaries of the input image space with the boundaries of a set of new input pixels, and the coordinate points of the output pixels map to corresponding coordinate points of the new input pixels.
Claims43
A method of designing a filter for resizing an input image comprising a plurality of input pixels to generate a resized image comprising a plurality of corresponding output pixels while preserving the information content of the image, comprising the steps of:
- (a) selecting a first interpolation rate and a first decimation rate for a first sense;
- (b) selecting a second interpolation rate and a second decimation rate for a second sense;
- (c) selecting a first stopband attenuation and a a first sharpness factor for the first sense and a second stopband attenuation and a second sharpness factor for the second sense;
- (d) computing a first cutoff frequency for the first sense and a second cutoff frequency for the second sense;
- (e) establishing an input kernel having a first number of elements in the first sense and a second number of elements in the second sense;
- (f) generating a first low-pass filter for the first sense, the first low-pass filter comprising a first filter vector including a plurality of first coefficients;
- (g) modifying the first low-pass filter, comprising the steps of:
- (1) creating a first vector comprising a plurality of elements each having a value equal to unity, the first vector having a dimensionality equal to the first interpolation rate, and
- (2) convolving the first filter vector with the first vector to create a modified first filter vector comprising a plurality of the first coefficients;
- (h) generating a second low-pass filter for the second sense, the second low-pass filter comprising a second filter vector including a plurality of second coefficients;
- (i) modifying the second low-pass filter, comprising the steps of:
- (1) creating a second vector comprising a plurality of elements each having a value equal to unity and the second vector having a dimensionality equal to the second interpolation rate, and
- (2) convolving the second filter vector with the second vector to create a modified second filter vector comprising a plurality of the second coefficients;
- (j) creating a first set of coefficient vectors by selecting a plurality of the coefficients of the modified first filter vector as a function of the first interpolation rate, the first decimation rate and the first number of elements;
- (k) creating a second set of coefficient vectors by selecting a plurality of the coefficients of the modified second filter vector as a function of the second interpolation rate, the second decimation rate and the second number of elements;
- (1) applying the first and second sets of coefficient vectors to a neighborhood of the values of input pixels adjacent each output pixel to compute the value of each output pixel and assigning the computed values to the corresponding output pixels, thereby producing the resized image;
- and
- (m) storing the resized image in an output memory device.
A method of resizing an input image comprising a plurality of input pixels to generate a resized image comprising a plurality of corresponding output pixels while preserving the information content of the image, comprising the steps of:
- (a) sampling the input image at a predetermined first interval in a first sense and at a predetermined second interval in a second sense for producing input data values for the location of each input pixel;
- (b) establishing a third interval in the first sense and a predetermined fourth interval in the second sense for producing output data values for the location of each output pixel;
- (c) designing a filter for resizing the image, comprising the steps of:
- (1) selecting a first interpolation rate and a first decimation rate in a first sense,
- (2) selecting a second interpolation rate and a second decimation rate in a second sense,
- (3) establishing an input kernel having a first number of elements in the first sense and a second number of elements in the second sense,
- (4) generating a first low-pass filter for the first sense, the first low-pass filter comprising a first filter vector including a plurality of first coefficients,
- (5) modifying the first low-pass filter, comprising the steps of:
- (A) creating a first vector comprising a plurality of elements each having a value equal to unity, the first vector having a dimensionality equal to the first interpolation rate, and
- (B) convolving the first filter vector with the first vector to create a modified first filter vector comprising a plurality of the first coefficients,
- (6) generating a second low-pass filter for the second sense, the second low-pass filter comprising a second filter vector including a plurality of second coefficients,
- (7) modifying the second low-pass filter, comprising the steps of:
- (A) creating a second vector comprising a plurality of elements each having a value equal to unity, the second vector having a dimensionality equal to the second interpolation rate, and
- (B) convolving the second filter vector with the second vector to create a modified second filter vector comprising a plurality of the second coefficients,
- (8) creating a first set of coefficient vectors by selecting a plurality of the coefficients of the modified first filter vector as a function of the first interpolation rate, the first decimation rate and the first number of elements,
- (9) creating a second set of coefficient vectors by selecting a plurality of the coefficients of the modified second filter vector as a function of the second interpolation rate, the second decimation rate and the second number of elements;
- (d) applying the first and second sets of coefficient vectors to a neighborhood of the values of the input pixels adjacent each output pixel to compute the value of each output pixel and assigning the computed values to the corresponding output pixel, thereby producing a resized image;
- and
- (e) storing the resized image in an output memory device.
A method of mapping the pixels of an output image space to an input image space when resizing an image, comprising the steps of:
- (a) defining the input image space as including a predetermined number of non-overlapping, original input pixels, each original input pixel comprising a two-dimensional area represented by an original input pixel coordinate point and extending in a first input sense and a second input sense;
- (b) defining a total input image area as the sum of the areas of each original input pixel, the total input image area having a first input extent in the first input sense and a second input extent in the second input sense;
- (c) defining the output image space as including a predetermined number of output pixels, each output pixel comprising a two-dimensional area extending in a first output sense and a second output sense, the output image space having a first number of output pixels in the first output sense and a second number of output pixels in the second output sense;
- (d) defining a set of new input pixels image by dividing the first input extent by the first number of output pixels and dividing the second input extent by the second number of output pixels, each of the new input pixels being represented by a new input pixel coordinate point and corresponding to an output pixel, whereby the boundaries of the original input pixels and the new input pixels are aligned and each of the output pixel coordinate points maps to a corresponding new input pixel coordinate point;
- (e) applying a filter for resizing the input image in the first and second input senses to a neighborhood of the values of the original input pixels adjacent each new input pixel to compute the value of each of the new input pixels and assigning the computed values to the corresponding output pixels, whereby the image is resized;
- and
- (f) storing the values of the output pixels in an output memory device.
Dependencies are inferred from the claim text.