Бикубическая интерполяция | это... Что такое Бикубическая интерполяция? (original) (raw)
Результат бикубической интерполяции функции заданной на сетке . Данную сетку можно рассматривать как состоящую из 9 единичных квадратов. Черными точками обозначены известные значения функции до интерполяции. Цветом обозначены интерполированные значения в каждой точке полученного изображения.
Бикубическая интерполяция — в вычислительной математике расширение кубической интерполяции на случай функции двух переменных, значения которой заданы на двумерной регулярной сетке. Поверхность, полученная в результате бикубической интерполяции является гладкой функцией, в отличие от поверхностей, полученных в результате билинейной интерполяции или интерполяции методом ближайшего соседа. Также бикубическая интерполяция часто используется в обработке изображений, давая более качественное изображение по сравнению с билинейной интерполяцией. В случае бикубической интерполяции значение функции в искомой точке вычисляется через ее значения в 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
=](http://dic.academic.ru/dic.nsf/ruwiki/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]
](http://dic.academic.ru/dic.nsf/ruwiki/4e771c066bad65ab0cea2e575f7d836e.png)