Введение
Метод интерполяции функций на двумерной сетке
В математике билинейная интерполяция — это метод интерполяции функций двух переменных (например, x и y) с использованием последовательных линейных интерполяций. Обычно она применяется к функциям, значения которых заданы на двумерной прямоугольной сетке, хотя её можно обобщить на функции, определенные на вершинах (сети) произвольных выпуклых четырехугольников. Билинейная интерполяция выполняется путем применения линейной интерполяции сначала в одном направлении, а затем снова в другом. Хотя каждый шаг является линейным относительно выборочных значений и положения, интерполяция в целом не является линейной, а скорее квадратичной относительно местоположения точки интерполяции. Билинейная интерполяция является одним из основных методов изменения разрешения в компьютерном зрении и обработке изображений, где она также называется билинейной фильтрацией или билинейным отображением текстур.
Вычисления
Предположим, что мы хотим найти значение неизвестной функции f в точке (x, y). Предполагается, что нам известны значения f в четырех точках Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1) и Q22 = (x2, y2).
Свойства
Как следует из названия, билинейный интерполянт не является линейным; однако он линеен (т.е. аффинен) вдоль линий, параллельных оси x или оси y, что эквивалентно сохранению постоянными значений x или y. Вдоль любой другой прямой интерполянт является квадратичным. Несмотря на то, что интерполяция не является линейной по координатам (x и y), в фиксированной точке она линейна по значениям интерполяции, что можно увидеть в приведенных выше уравнениях (в матричной форме). Результат билинейной интерполяции не зависит от порядка интерполяции по осям. Если бы мы сначала выполнили линейную интерполяцию по оси y, а затем по оси x, полученное приближение было бы тем же самым. Интерполянт представляет собой билинейный полином, который также является гармонической функцией, удовлетворяющей уравнению Лапласа. Его график представляет собой билинейную поверхность Безье.
Инверсия и обобщение
В общем, интерполянт будет принимать любое значение (в выпуклой оболочке значений вершин) в бесконечном количестве точек (образующих ветви гипербол), поэтому интерполяция необратима. Однако, когда билинейная интерполяция применяется к двум функциям одновременно, например, при интерполяции векторного поля, то интерполяция становится обратимой (при определенных условиях). В частности, обратное преобразование можно использовать для нахождения "координат в единичном квадрате" точки внутри любого выпуклого четырехугольника (рассматривая координаты четырехугольника как векторное поле, которое билинейно интерполируется на единичный квадрат). Используя эту процедуру, билинейную интерполяцию можно расширить на любой выпуклый четырехугольник, хотя вычисления значительно усложняются, если это не параллелограмм. Получаемое отображение между четырехугольниками известно как билинейное преобразование, билинейная деформация или билинейное искажение. В качестве альтернативы можно использовать проективное отображение между четырехугольником и единичным квадратом, но полученный интерполянт не будет билинейным. В особом случае, когда четырехугольник является параллелограммом, существует линейное отображение на единичный квадрат, и обобщение выполняется легко. Очевидное расширение билинейной интерполяции в трех измерениях называется трилинейной интерполяцией. Пусть – векторное поле, которое билинейно интерполируется на единичный квадрат, параметризованный . Инвертирование интерполяции требует решения системы из двух билинейных полиномиальных уравнений: где. Взятие 2D векторного произведения (см. произведение Грассмана) системы с тщательно выбранными векторами позволяет исключить слагаемые: что раскладывается в где. Квадратные уравнения можно решить с помощью квадратной формулы. У нас есть эквивалентные определители и решения (противоположные знаки обеспечиваются линейным соотношением). Случаи, когда или должны рассматриваться отдельно. При соблюдении определенных условий одно из двух решений должно находиться в единичном квадрате.
Применение в обработке изображений
В компьютерном зрении и обработке изображений билинейная интерполяция используется для передискретизации изображений и текстур. Алгоритм применяется для сопоставления местоположения пикселя экрана соответствующей точке на текстурной карте. Вычисляется и применяется к пикселю экрана средневзвешенное значение атрибутов (цвет, прозрачность и т.д.) четырех окружающих текселей. Этот процесс повторяется для каждого пикселя, формирующего текстурируемый объект. Когда необходимо увеличить изображение, каждый пиксель исходного изображения должен быть сдвинут в определенном направлении в соответствии с коэффициентом масштабирования. Однако при увеличении изображения с использованием нецелого коэффициента масштабирования возникают пиксели (то есть пробелы), которым не присвоены соответствующие значения. В этом случае этим пробелам следует присвоить соответствующие значения RGB или оттенки серого, чтобы выходное изображение не содержало неинициализированных пикселей. Билинейная интерполяция может использоваться в тех случаях, когда невозможно идеальное преобразование изображения с точным соответствием пикселей, позволяя вычислить и присвоить соответствующие значения интенсивности пикселям. В отличие от других методов интерполяции, таких как интерполяция ближайшего соседа и бикубическая интерполяция, билинейная интерполяция использует значения только 4 ближайших пикселей, расположенных по диагонали от заданного пикселя, для определения соответствующих значений цветовой интенсивности этого пикселя. Билинейная интерполяция учитывает ближайшее окружение 2x2 известных значений пикселей, окружающих вычисленное положение неизвестного пикселя. Затем вычисляется средневзвешенное значение этих 4 пикселей для получения окончательного интерполированного значения.