Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bicubic interpolation artifacts (image upscale)

I am using a bicubic interpolation algorithm in order to upscale an height map, and I am noticing some artifacts around the pixels boundaries. However, these artifacts don't seem to appear when I use a simple cubic interpolation (spline).

Could it be because the bicubic interpolation doesn't guarantee the second derivative to be continuous, unlike the cubic spline ? If so, is there known algorithms that have a continuous second derivative ? Otherwise, is there a way to deal with these artifacts ?

Linear interpolation (shows the pixels boundaries): Linear interpolation

Bicubic interpolation (artifacts visible at pixels boundaries): Bicubic interpolation

Cubic interpolation (no noticeable artifacts): enter image description here

I tried several bicubic formulas, which gave me the same results. Here are some examples:

  • http://paulbourke.net/miscellaneous/interpolation
  • http://www.paulinternet.nl/?page=bicubic

Edit: I made some searches and found that B-Spline have a continuous C2 (also suggested by Bharat). I implemented it and it looks fine, even if it's an approximation and not an interpolation (it doesn't go through the samples).

B-spline (approximation): b-spline

like image 919
deck Avatar asked Feb 12 '14 14:02

deck


People also ask

What is bicubic upscaling?

Bicubic interpolation is a 2D system of using cubic splines or other polynomial technique for sharpening and enlarging digital images. It is commonly used in computer image editing software, by retouchers and editors when upscaling or resampling an image.

What is bicubic interpolation in image processing?

In image processing, bicubic interpolation is often chosen over bilinear or nearest-neighbor interpolation 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).

Which interpolation is best for image resizing?

Bilinear interpolation Linear (or bilinear, in two dimensions) interpolation is typically good for changing the size of an image, but causes some undesirable softening of details and can still be somewhat jagged.

What are the 3 interpolation methods for images?

Image interpolation is generally achieved through one of three methods: nearest neighbor, bilinear interpolation, or bicubic interpolation.


1 Answers

second derivative of cubic B-Spline is continuous while that of bicubic interpolation is not.

http://en.wikipedia.org/wiki/Spline_interpolation http://en.wikipedia.org/wiki/Cubic_interpolation

https://math.stackexchange.com/questions/485935/piecewise-interpolation-with-derivatives-that-is-also-twice-differentiable

like image 59
Bharat Avatar answered Oct 01 '22 13:10

Bharat