4
Bicubic interpolation 1 Bicubic interpolation Bicubic interpolation on the square consisting of 9 unit squares patched together. Bicubic interpolation as per MATLAB's implementation. Colour indicates function value. The black dots are the locations of the prescribed data being interpolated. Note how the color samples are not radially symmetric. Bilinear interpolation on the same dataset as above. Derivatives of the surface are not continuous over the square boundaries. Nearest-neighbor interpolation on the same dataset as above. Note that the information content in all these three examples is equivalent. In mathematics, bicubic interpolation is an extension of cubic interpolation for interpolating data points on a two dimensional regular grid. The interpolated surface is smoother than corresponding surfaces obtained by bilinear interpolation or nearest-neighbor interpolation. Bicubic interpolation can be accomplished using either Lagrange polynomials, cubic splines, or cubic convolution algorithm. In image processing, bicubic interpolation is often chosen over bilinear interpolation or nearest neighbor in image resampling, when speed is not an issue. In contrast to bilinear interpolation, which only takes 4 pixels (2×2) into account, bicubic interpolation considers 16 pixels (4×4). Images resampled with bicubic interpolation are smoother and have fewer interpolation artifacts. Bicubic interpolation Suppose the function values and the derivatives , and are known at the four corners , , , and of the unit square. The interpolated surface can then be written The interpolation problem consists of determining the 16 coefficients . Matching with the function values yields four equations, 1. 2. 3. 4. Likewise, eight equations for the derivatives in the -direction and the -direction 1. 2. 3. 4. 5. 6. 7. 8. And four equations for the cross derivative . 1. 2. 3.

Bicubic interpolation Wiki.pdf

Embed Size (px)

Citation preview

Page 1: Bicubic interpolation Wiki.pdf

Bicubic interpolation 1

Bicubic interpolation

Bicubic interpolation on the squareconsisting of 9 unit squares

patched together. Bicubic interpolation as perMATLAB's implementation. Colour indicates

function value. The black dots are the locations ofthe prescribed data being interpolated. Note how

the color samples are not radially symmetric.

Bilinear interpolation on the same dataset asabove. Derivatives of the surface are notcontinuous over the square boundaries.

Nearest-neighbor interpolation on the samedataset as above. Note that the information

content in all these three examples is equivalent.

In mathematics, bicubic interpolation is an extension of cubicinterpolation for interpolating data points on a two dimensional regulargrid. The interpolated surface is smoother than corresponding surfacesobtained by bilinear interpolation or nearest-neighbor interpolation.Bicubic interpolation can be accomplished using either Lagrangepolynomials, cubic splines, or cubic convolution algorithm.

In image processing, bicubic interpolation is often chosen over bilinearinterpolation or nearest neighbor in image resampling, when speed isnot an issue. In contrast to bilinear interpolation, which only takes 4pixels (2×2) into account, bicubic interpolation considers 16 pixels(4×4). Images resampled with bicubic interpolation are smoother andhave fewer interpolation artifacts.

Bicubic interpolation

Suppose the function values and the derivatives , and are known at the four corners , , , and ofthe unit square. The interpolated surface can then be written

The interpolation problem consists of determining the 16 coefficients. Matching with the function values yields four

equations,1.2.3.4.Likewise, eight equations for the derivatives in the -direction andthe -direction

1.2.3.4.5.6.7.8.And four equations for the cross derivative .

1.2.3.

Page 2: Bicubic interpolation Wiki.pdf

Bicubic interpolation 2

4.where the expressions above have used the following identities,

.

This procedure yields a surface on the unit square which is continuous and with continuousderivatives. Bicubic interpolation on an arbitrarily sized regular grid can then be accomplished by patching togethersuch bicubic surfaces, ensuring that the derivatives match on the boundaries.If the derivatives are unknown, they are typically approximated from the function values at points neighbouring thecorners of the unit square, e.g. using finite differences.Grouping the unknown parameters in a vector,

and letting

,the problem can be reformulated into a linear equation where its inverse is:

.

Bicubic convolution algorithmBicubic spline interpolation requires the solution of the linear system described above for each grid cell. Aninterpolator with similar properties can be obtained by applying a convolution with the following kernel in bothdimensions:

where is usually set to -0.5 or -0.75. Note that and for all nonzero integers .This approach was proposed by Keys who showed that (which corresponds to cubic Hermite spline)produces third-order convergence with respect to the original function.If we use the matrix notation for the common case , we can express the equation in a more friendlymanner:

for between 0 and 1 for one dimension. for two dimensions first applied once in and again in :

Page 3: Bicubic interpolation Wiki.pdf

Bicubic interpolation 3

Use in computer graphics

Bicubic interpolation causes overshoot, which increases acutance.

The bicubic algorithm is frequently used for scalingimages and video for display (see bitmap resampling).It preserves fine detail better than the common bilinearalgorithm.

However, due to the negative lobes on the kernel, itcauses overshoot (haloing). This can cause clipping,and is an artifact (see also ringing artifacts), but itincreases acutance (apparent sharpness), and can bedesirable.

References

External links

• Application of interpolation to elevation samples(http:/ / www. geovista. psu. edu/ sites/ geocomp99/Gc99/ 082/ gc_082. htm)

• Interpolation theory (http:/ / sepwww. stanford. edu/ public/ docs/ sep107/ paper_html/ node20. html)• Explanation and Java/C++ implementation of (bi)cubic interpolation (http:/ / www. paulinternet. nl/

?page=bicubic)• Excel Worksheet Function for Bicubic Lagrange Interpolation (http:/ / mathformeremortals. wordpress. com/

2013/ 01/ 15/ bicubic-interpolation-excel-worksheet-function/ )

Page 4: Bicubic interpolation Wiki.pdf

Article Sources and Contributors 4

Article Sources and ContributorsBicubic interpolation  Source: https://en.wikipedia.org/w/index.php?oldid=604287317  Contributors: Amux, Anakin101, Ansell, Ati3414, BIS Suma, BenFrantzDale, Berland, Btyner, Cburnett,Crotalus horridus, Davidhorman, Dicklyon, DocWatson42, Dudzcom, Enzo Aquarius, Faleichik, Fedra, Fgnievinski, Freederick, Frietjes, GabrielSjoberg, George100, Hu, LilHelpa, ManiacK,Mark viking, MattieTK, Mblumber, Michael Hardy, Mwtoews, Mátyás, Nbarth, Nrobidoux, Oleg Alexandrov, Omicronpersei8, Paul Breeuwsma, PhilKnight, Plesatejvlk, Qutezuce, RasmusFaber, Silverfish, Simoneau, Smyth, Stephen e nelson, Sterrys, Steve Checkoway, Svick, The Anome, Ti chris, Tomash, Turkishbob, Weedwhacker128, 84 anonymous edits

Image Sources, Licenses and ContributorsImage:BicubicInterpolationExample.png  Source: https://en.wikipedia.org/w/index.php?title=File:BicubicInterpolationExample.png  License: Public Domain  Contributors: BerlandImage:BilinearInterpolExample.png  Source: https://en.wikipedia.org/w/index.php?title=File:BilinearInterpolExample.png  License: Public Domain  Contributors: BerlandImage:Nearest2DInterpolExample.png  Source: https://en.wikipedia.org/w/index.php?title=File:Nearest2DInterpolExample.png  License: Public Domain  Contributors: BerlandImage:Accutance.svg  Source: https://en.wikipedia.org/w/index.php?title=File:Accutance.svg  License: GNU Free Documentation License  Contributors: Accutance.png derivative work: Beao(talk)

LicenseCreative Commons Attribution-Share Alike 3.0//creativecommons.org/licenses/by-sa/3.0/