Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Четыре красных точки показывают точки данных, а зеленая точка - это точка, в которой мы хотим выполнить интерполяцию.
Пример билинейной интерполяции на единичном квадрате с указанными значениями z 0, 1, 1 и 0,5. Интерполированные значения между ними представлены цветом.

В математике , билинейная интерполяция является расширением линейной интерполяции для интерполирования функции двух переменных (например, х и у ) на прямолинейном 2D сетки .

Билинейная интерполяция выполняется с использованием линейной интерполяции сначала в одном направлении, а затем снова в другом направлении. Хотя каждый шаг является линейным по выборочным значениям и позиции, интерполяция в целом не линейна, а скорее квадратична по местоположению выборки.

Билинейная интерполяция - один из основных методов передискретизации в компьютерном зрении и обработке изображений , где ее также называют билинейной фильтрацией или билинейным отображением текстуры .

Алгоритм [ править ]

Предположим, что мы хотим найти значение неизвестной функции f в точке ( x , y ). Предполагается, что мы знаем значение f в четырех точках: Q 11 = ( x 1y 1 ), Q 12 = ( x 1y 2 ), Q 21 = ( x 2y 1 ) и Q 22. = ( х 2у 2 ).

Сначала мы выполняем линейную интерполяцию по оси x . Это дает

Продолжим интерполяцию по оси y, чтобы получить желаемую оценку:

Обратите внимание, что мы получим тот же результат, если интерполяция выполняется сначала по направлению y, а затем по направлению x . [1]

Альтернативный алгоритм [ править ]

Альтернативный способ написать решение задачи интерполяции:

где коэффициенты находятся из решения линейной системы

дающий результат

Если решение является предпочтительным с точки зрения f ( Q ), то мы можем написать

где коэффициенты находятся путем вычисления

Единичный квадрат [ править ]

Если мы выберем систему координат, в которой четыре точки, в которых известно f, это (0, 0), (1, 0), (0, 1) и (1, 1), то формула интерполяции упрощается до

или, что то же самое, в матричных операциях:

Геометрическая визуализация билинейной интерполяции. Произведение значения в желаемой точке (черный) и всей площади равно сумме произведений значения в каждом углу и частичной площади по диагонали напротив угла (соответствующие цвета).

Нелинейный [ править ]

Как следует из названия, билинейный интерполянт не является линейным; но это продукт двух линейных функций . Например, полученная выше билинейная интерполяция является произведением значений и .

В качестве альтернативы интерполянт на единичном квадрате можно записать как

куда

В обоих случаях количество констант (четыре) соответствует количеству точек данных, где задано f . Интерполянт является линейным по линиям, параллельным направлению x или y , что эквивалентно, если x или y заданы постоянными. Вдоль любой другой прямой интерполянт квадратичный . Тем не менее, даже если интерполяция не линейная в положении ( х и у ), оно является линейным по амплитуде, как это видно из уравнений выше: все коэффициенты J , J= 1–4, пропорциональны значению функции f .

Результат билинейной интерполяции не зависит от того, какая ось интерполируется первой, а какая - второй. Если бы мы сначала выполнили линейную интерполяцию в направлении y, а затем в направлении x , результирующее приближение было бы таким же.

Очевидное расширение билинейной интерполяции до трех измерений называется трилинейной интерполяцией .

Применение в обработке изображений [ править ]

Сравнение билинейной интерполяции с некоторыми 1- и 2-мерными интерполяциями. Черные и красные / желтые / зеленые / синие точки соответствуют интерполированной точке и соседним отсчетам соответственно. Их высота над землей соответствует их значениям.

В компьютерном зрении и обработке изображений билинейная интерполяция используется для передискретизации изображений и текстур. Алгоритм используется для сопоставления местоположения пикселя экрана с соответствующей точкой на карте текстуры . Средневзвешенное значение атрибутов (цвет, прозрачность и т. Д.) Четырех окружающих текселей вычисляется и применяется к пикселю экрана. Этот процесс повторяется для каждого пикселя, образующего текстурированный объект. [2]

Когда изображение необходимо увеличить, каждый пиксель исходного изображения необходимо переместить в определенном направлении на основе постоянной масштаба. Однако при увеличении масштаба изображения с помощью нецелого масштабного коэффициента есть пиксели (т. Е. Дыры ), которым не присвоены соответствующие значения пикселей. В этом случае этим отверстиям должны быть назначены соответствующие значения RGB или оттенков серого, чтобы в выходном изображении не было пикселей без значений.

Билинейная интерполяция может использоваться там, где невозможно идеальное преобразование изображения с сопоставлением пикселей, чтобы можно было вычислить и присвоить пикселям соответствующие значения интенсивности. В отличие от других методов интерполяции, таких как интерполяция ближайшего соседа и бикубическая интерполяция , билинейная интерполяция использует значения только 4 ближайших пикселей, расположенных по диагонали от данного пикселя, чтобы найти соответствующие значения интенсивности цвета этого пикселя.

Билинейная интерполяция рассматривает ближайшую окрестность 2 × 2 известных значений пикселей, окружающую вычисленное местоположение неизвестного пикселя. Затем требуется средневзвешенное значение этих 4 пикселей, чтобы получить окончательное интерполированное значение. [3]

Билинейная интерполяция
Пример билинейной интерполяции в оттенках серого

Как видно из примера справа, значение интенсивности в пикселе, вычисленном как строка 20.2, столбец 14.5, может быть вычислено сначала путем линейной интерполяции между значениями в столбцах 14 и 15 в каждой строке 20 и 21, давая

а затем линейно интерполируя эти значения, давая

Этот алгоритм уменьшает некоторые визуальные искажения, вызванные изменением размера изображения до нецелого коэффициента масштабирования, в отличие от интерполяции ближайшего соседа, которая заставляет некоторые пиксели казаться больше, чем другие в изображении с измененным размером.

См. Также [ править ]

  • Бикубическая интерполяция
  • Трилинейная интерполяция
  • Сплайн-интерполяция
  • Передискретизация Ланцоша
  • Интерполяция ступенек
  • Барицентрические координаты - для интерполяции внутри треугольника или тетраэдра.

Ссылки [ править ]

  1. ^ Press, Уильям Х .; Teukolsky, Saul A .; Веттерлинг, Уильям Т .; Фланнери, Брайан П. (1992). Числовые рецепты на C: искусство научных вычислений (2-е изд.). Нью-Йорк, Нью-Йорк, США: Издательство Кембриджского университета. С.  123-128 . ISBN 0-521-43108-5.
  2. ^ Определение билинейной интерполяции (популярная статья на www.pcmag.com .
  3. ^ "Веб-руководство: Интерполяция цифровых изображений" .