Билинейная интерполяция
Билине́йная интерполя́ция — в вычислительной математике — обобщение линейной интерполяции одной переменной для функций двух переменных.
Обобщение основано на применении обычной линейной интерполяции сначала в направлении одной из координат, а затем в перпендикулярном направлении.
Функция билинейной интерполяции имеет вид:
и интерполирует значения исходной функции двух переменных в произвольном прямоугольнике по четырём её значениям в вершинах прямоугольника и экстраполирует функцию на всю остальную поверхность.

Принцип построения билинейной интерполяции[править | править код]
Допустим, что необходимо интерполировать значение функции в точке . Значения функции в окружающих точку точках и известны (рис. 1).
Первым шагом линейно интерполируется значение вспомогательных точек и вдоль оси абсцисс, где
Теперь проводится линейная интерполяция между вспомогательными точками и .
Это и есть интерполируемое (экстраполируемое) значение функции , причём значения интерполирующей функции равны значениям интерполируемой функции в исходных точках :
Другим эквивалентным способом неизвестные коэффициенты интерполирующей функции (интерполянта) можно найти из решения системы линейных уравнений относительно коэффициентов интерполянта :
В частном случае, когда известны значения интерполируемой функции в точках, являющихся вершинами единичного квадрата с координатами вершин (0, 0), (0, 1), (1, 0), и (1, 1), формула билинейной интерполяции упрощается до:
Или же в обозначениях умножения векторов на матрицу:
Обратите внимание, что сам интерполянт не линеен, а билинеен:
где
- .
Результат билинейной интерполяции не зависит от порядка шагов по координатам. Возможно сначала интерполировать между заданными точками вдоль оси ординат и затем, получив два вспомогательных значения, интерполировать между ними вдоль оси абсцисс.
Обобщение билинейной интерполяции на функции трёх и более переменных[править | править код]
Интерполянт билинейной интерполяции можно записать в виде:
соответственно, интерполянт трилинейной интерполяции функции трёх переменных записывается как:
Неизвестные коэффициенты находятся из решения системы 8-ми линейных уравнений по известным значениям интерполируемой функции в 8-ми точках, принадлежащих вершинам прямоугольного параллелепипеда в координатах :
В случае линейной интерполяции функции переменных линейный интерполянт будет:
коэффициентов интерполянта находятся из решения системы линейных уравнений по известным значениям интерполируемой функции в вершинах прямоугольного гиперпараллелепипеда.
Использование билинейной интерполяции[править | править код]
Билинейная интерполяция применяется при обработке числовых данных, в метеорологии и гидродинамике, сопротивлении материалов, в компьютерной графике, для компенсации ошибок перемещения инструмента по координатам в станках с ЧПУ и др.
Билинейная интерполяция двумерных векторных полей[править | править код]
Помимо интерполяции скалярного двумерного поля, — то есть функции двух переменных (координат), билинейная интерполяция также применяется для интерполяции двумерных векторных полей. При такой интерполяции интерполируются обе компоненты векторного поля — проекции вектора в точках на оси координат. Результат интерполяции двух скалярных функций — компонентов вектора, порождает интерполированный вектор.
Этот подход применяется в метеорологии для построения интерполированной карты ветров в прямоугольной области по измеренным данным значений векторов ветра в опорных точках, принадлежащих вершинам прямоугольника[1].
Билинейная интерполяция в компьютерной графике[править | править код]

Заданные значения функции изображены цветными точками, значение функции в интерполируемой точке — черными точками.
Изображены одномерная и двумерная интерполяции к ближайшему соседу, линейная, квадратическая, кубическая билинейная, биквадратная и бикубическая интерполяции.
В компьютерной графике билинейная интерполяция наряду с другими методами интерполяций получила широкое распространение в процессе ресемплинга (или, проще говоря, масштабирования) изображений. Билинейную интерполяцию в приложениях обработки изображений обычно называют «билинейной фильтрацией». Применение этого метода обусловлено относительно низкой вычислительной ресурсоёмкости, что снижает время на ресемплинг при удовлетворительном качестве обработки изображений.
Необходимость интерполяции цветов в обработке цифровых изображений обусловлена тем, что при простом увеличении изображений без обработки происходит сильная пикселизация картинки.
Билинейная интерполяция — один из методов интерполяции и используется для вычисления цветов дополнительных пикселей () относительно основных, исходных, заданных в оригинальном изображении с известными цветовыми координатами , причем цветовые координаты пикселей, лежащих внутри прямоугольника с заданными цветовыми координатами в вершинах его, или одна цветовая координата в случае полутоновых изображений, вычисляются во всех точках между опорными точками, что позволяет сглаживать резкие границы между пикселями исходного изображения. Значения функций в данном случае вычисляется по цветовым координатам опорных точек. При этом сторона квадрата, образованного четырьмя смежными рассматриваемыми основными точками обычно принимается за единицу.
Недостаток метода билинейной интерполяции при масштабировании изображений[править | править код]
Главный недостаток метода билинейной интерполяции при масштабировании изображений — при увеличении в раз исходного изображения размером на пикселей в результате будет получено изображение размером не на пикселей, а на пикселей.
Связано это с тем, что в исходном изображении, например, по горизонтали имеется точек, то есть смежных пар. При увеличении изображения в раз между каждой парой основных точек вставляется по дополнительных точек (то есть при увеличении вдвое между основными точками вставляется ещё по одной, при увеличении втрое — по две и т. д.). Итого в результате ширина результирующего изображения будет равна сумме количества основных и дополнительных точек:
- .
Проще говоря, для пикселей по границам изображения (в каждой строке и столбце) исходного изображения не находится пары, с которой можно было бы провести интерполирование.
Для обхода данного ограничения, во-первых, обычно принимается, что в исходном и полученном изображениях цветовые значения пикселей семплированы из их центров, нежели из углов, то есть например, если принять абсолютную длину и ширину изображения равными 1, в изображении размером 2 на 2 координатами исходных точек являются (0,25; 0,25), (0,25; 0,75), (0,75; 0,25), и (0,75; 0,75), нежели (0; 0), (0; 0,5), (0,5; 0), и (0,5; 0,5) (поправка на дискретизацию). Таким образом обеспечивается правильная центровка изображения при масштабировании, но проблемными оказываются не только последняя строка и последний столбец, а все пограничные пиксели получаемого изображения в равной степени, ибо их координаты выпадают за пределы прямоугольника, очерчивающего точки семплирования исходного изображения (например, при масштабировании в 4 на 4 нужно вычислить значения в точках (0,125; 0,125), (0,125; 0,875) и т. д.). Затем, так как значения в этих точках не могут быть интерполированы, то нужно расширить исходное изображение одним из способов (выбор которого зависит от способа дальнейшего использования изображения):
- Экстраполяция значений краевых пикселей;
- Зеркальное отражение исходного изображения относительно каждого края, и центральное по углам. В качестве значений отсутствующих пикселей используются копии значений пикселей с того же края; таким образом, пиксели, выпадающие за исходные координаты, являются интерполянтами лишь в одном измерении, а в другом копиями краевых значений;
- Тесселяция исходного изображения: копии исходного изображения «приклеиваются» встык с каждого края и из углов. В качестве цветовых значений отсутствующих пикселей, таким образом, используются значения пикселей с противоположного края. Метод подходит, если интерполированное изображение само будет использоваться для тесселяции (например, для заполнения многоугольников при текстурировании).
После подобной предварительной обработки процедура билинейной интерполяции применяется в исходном виде, с получением изображения ожидаемого размера ( на ).
См. также[править | править код]
Примечания[править | править код]
- ↑ Объективный анализ метеорологических полей . Дата обращения: 12 февраля 2018. Архивировано 13 февраля 2018 года.
![]() | В статье не хватает ссылок на источники (см. рекомендации по поиску). |