- Бикубическая интерполяция
-
Бикубическая интерполяция — в вычислительной математике расширение кубической интерполяции на случай функции двух переменных, значения которой заданы на двумерной регулярной сетке. Поверхность, полученная в результате бикубической интерполяции является гладкой функцией, в отличие от поверхностей, полученных в результате билинейной интерполяции или интерполяции методом ближайшего соседа. Также бикубическая интерполяция часто используется в обработке изображений, давая более качественное изображение по сравнению с билинейной интерполяцией. В случае бикубической интерполяции значение функции в искомой точке вычисляется через ее значения в 16-ти соседних точках. При использовании приведённых ниже формул для программной реализации бикубической интерполяции следует помнить, что значения
и
являются относительными, а не абсолютными. Например, для пикселя с координатами
. Для получения относительных значений координат необходимо округлить вещественные координаты вниз, и вычесть полученные числа из вещественных координат.
, где
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Подобным образом можно использовать и другие виды интерполяции, вычисляя значения функции по соседним
точкам, но качество этих формул хуже чем бикубической интерполяции.
Результат билинейной интерполяции на тех же входных данных. Частные производные не являются непрерывными и терпят разрыв на границах квадратов.
Результат интерполяции методом ближайшего соседа на тех же входных данных.
Бикубическая интерполяция сплайнами
Допустим, что необходимо интерполировать значение функции
в точке
, лежащей внутри квадрата
, и известно значение функции
в шестнадцати соседних точках
. Тогда общий вид функции, задающей интерполированную поверхность, может быть записан следующим образом: 
Для нахождения коэффициентов
необходимо подставить в вышеприведенное уравнение значения функции в известных шестнадцати точках. Например:
.Полностью в матричном виде:
,где
,
,
.Решая получившуюся систему линейных алгебраических уравнений, можно найти значения
в явном виде:
.Единожды найденные коэффициенты
теперь могут быть использованы для многократного вычисления интерполированного значения функции в произвольных точках квадрата
.Последовательная кубическая интерполяция
Другая интерпретация метода заключается в том, что для нахождения интерполированного значения можно сначала произвести кубическую интерполяцию в одном направлении, а затем в другом.
Для функции
с известными значениями
,
,
,
можно построить кубический сплайн:
, или в матричном виде
,где
,
.Таким образом, для нахождения интерполированного значения
в квадрате
можно сначала рассчитать четыре значения
,
,
,
для зафиксированного
, затем через полученные четыре точки построить кубический сплайн, и этим завершить вычисление
:![p(x, y) =
\left[\begin{smallmatrix} 1 & y & y^2 & y^3 \end{smallmatrix}\right] A
\left(
\left[\begin{smallmatrix} 1 & x & x^2 & x^3 \end{smallmatrix}\right] A
\left[\begin{smallmatrix}
& f(-1, -1) & f(0, -1) & f(1, -1) & f(2, -1) \\
& f(-1, 0) & f(0, 0) & f(1, 0) & f(2, 0) \\
& f(-1, 1) & f(0, 1) & f(1, 1) & f(2, 1) \\
& f(-1, 2) & f(0, 2) & f(1, 2) & f(2, 2) \\
\end{smallmatrix}\right]
\right)^T
=](83fdaa459b58bbd27adab3ee6cf3bd6a.png)
![=
\left[\begin{smallmatrix} 1 & y & y^2 & y^3 \end{smallmatrix}\right] A
\left[\begin{smallmatrix}
f(-1, -1) & f(-1, 0) & f(-1, 1) & f(-1, 2) \\
f(0, -1) & f(0, 0) & f(0, 1) & f(0, 2) \\
f(1, -1) & f(1, 0) & f(1, 1) & f(1, 2) \\
f(2, -1) & f(2, 0) & f(2, 1) & f(2, 2)
\end{smallmatrix}\right]
A^T
\left[\begin{smallmatrix}
1 \\ x \\ x^2 \\ x^3
\end{smallmatrix}\right]](4e771c066bad65ab0cea2e575f7d836e.png)
См. также
Категории:- Интерполяция
- Цифровая обработка изображений
Wikimedia Foundation. 2010.

. Данную сетку можно рассматривать как состоящую из 9 единичных квадратов. Черными точками обозначены известные значения функции до интерполяции. Цветом обозначены интерполированные значения в каждой точке полученного изображения.