Upload
brauliodantas
View
260
Download
11
Embed Size (px)
Citation preview
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.
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 :
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/ )
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/