Билинейная интерполяция

В математике — билинейная интерполяция это метод интерполяции функций двух переменных (например, x и y ) с использованием повторяющейся линейной интерполяции . Обычно он применяется к функциям, выбранным на двумерной прямолинейной сетке , хотя его можно обобщить на функции, определенные в вершинах (сетке ) произвольных выпуклых четырехугольников .
Билинейная интерполяция выполняется с помощью линейной интерполяции сначала в одном направлении, а затем снова в другом направлении. Хотя каждый шаг является линейным по выборочным значениям и положению, интерполяция в целом не линейна, а скорее квадратична по местоположению выборки.
Билинейная интерполяция — один из основных методов повторной выборки в компьютерном зрении и обработке изображений , где ее также называют билинейной фильтрацией или билинейным наложением текстур .
Вычисление
[ редактировать ]
Предположим, мы хотим найти значение неизвестной функции f в точке ( x , y ). Предполагается, что мы знаем значение f в четырех точках Q 11 = ( x 1 , y 1 ), Q 12 = ( x 1 , y 2 ), Q 21 = ( x 2 , y 1 ) и Q 22 знак равно ( Икс 2 , у 2 ).
Повторная линейная интерполяция
[ редактировать ]Сначала мы выполняем линейную интерполяцию в направлении x . Это дает
Продолжим интерполяцию в направлении y, чтобы получить желаемую оценку:
Обратите внимание, что мы придем к тому же результату, если интерполяция будет выполнена сначала по направлению y , а затем по направлению x . [1]
Полиномиальная аппроксимация
[ редактировать ]Альтернативный способ — записать решение задачи интерполяции в виде полилинейного полинома.
где коэффициенты находятся из решения линейной системы
дающий результат
Взвешенное среднее
[ редактировать ]
Решение также можно записать как значение f средневзвешенное ( Q ):
где сумма весов равна 1 и удовлетворяет транспонированной линейной системе
дающий результат
что упрощается до
в соответствии с результатом, полученным повторной линейной интерполяцией. Набор весов также можно интерпретировать как набор обобщенных барицентрических координат прямоугольника.
Альтернативная форма матрицы
[ редактировать ]Объединив вышесказанное, мы имеем
На единичной площади
[ редактировать ]Если мы выберем систему координат, в которой известны четыре точки, в которых f известно: (0, 0), (0, 1), (1, 0) и (1, 1), то формула интерполяции упростится до
или, что то же самое, в матричных операциях:
Здесь мы также узнаем веса:
В качестве альтернативы интерполянт на единичном квадрате можно записать как
где
В обоих случаях количество констант (четыре) соответствует количеству точек данных, в которых f задано .
Характеристики
[ редактировать ]
Черные и красные / желтые / зеленые / синие точки соответствуют интерполируемой точке и соседним выборкам соответственно.
Их высота над землей соответствует их значениям.
Как следует из названия, билинейный интерполянт не является линейным; но он линеен (т.е. аффинен) вдоль линий, параллельных направлению x или y , что эквивалентно, если x или y остаются постоянными. Вдоль любой другой прямой интерполянт является квадратичным . Несмотря на то, что интерполяция не является линейной по положению ( x и y ), в фиксированной точке она линейна по значениям интерполяции, как видно из (матричных) уравнений выше.
Результат билинейной интерполяции не зависит от того, какая ось интерполируется первой, а какая второй. Если бы мы сначала выполнили линейную интерполяцию в направлении y , а затем в направлении x , полученное приближение было бы таким же.
Интерполянт представляет собой билинейный полином , который также является гармонической функцией, удовлетворяющей уравнению Лапласа . Его график представляет собой участок билинейной поверхности Безье .
Обратное и обобщение
[ редактировать ]В общем, интерполянт принимает любое значение (в выпуклой оболочке значений вершин) в бесконечном количестве точек (образуя ветви гипербол [2] ), поэтому интерполяция необратима.
Однако когда билинейная интерполяция применяется к двум функциям одновременно, например, при интерполяции векторного поля , тогда интерполяция обратима (при определенных условиях). В частности, это обратное можно использовать для нахождения «единичных квадратных координат» точки внутри любого выпуклого четырехугольника (путем рассмотрения координат четырехугольника как векторного поля, которое билинейно интерполируется на единичном квадрате). С помощью этой процедуры билинейную интерполяцию можно распространить на любой выпуклый четырехугольник, хотя вычисление значительно усложняется, если он не является параллелограммом. [3] Результирующая карта между четырехугольниками известна как билинейное преобразование , билинейная деформация или билинейное искажение .
В качестве альтернативы можно использовать проективное отображение между четырехугольником и единичным квадратом, но полученный интерполянт не будет билинейным.
В частном случае, когда четырехугольник является параллелограммом , существует линейное отображение на единичный квадрат, и обобщение легко следует.
Очевидное расширение билинейной интерполяции на три измерения называется трилинейной интерполяцией .
Обратные вычисления
|
---|
Применение в обработке изображений
[ редактировать ]В компьютерном зрении и обработке изображений билинейная интерполяция используется для повторной выборки изображений и текстур. Алгоритм используется для сопоставления местоположения пикселя экрана с соответствующей точкой на карте текстуры . Средневзвешенное значение атрибутов (цвет, прозрачность и т. д.) четырех окружающих текселей вычисляется и применяется к пикселю экрана. Этот процесс повторяется для каждого пикселя, образующего текстурируемый объект. [4]
Когда изображение необходимо увеличить, каждый пиксель исходного изображения необходимо переместить в определенном направлении в зависимости от константы масштаба. Однако при масштабировании изображения с помощью нецелого масштабного коэффициента появляются пиксели (т. е. дыры ), которым не присвоены соответствующие значения пикселей. В этом случае этим отверстиям следует назначить соответствующие значения RGB или оттенков серого , чтобы выходное изображение не имело незначащих пикселей.
Билинейная интерполяция может использоваться там, где невозможно идеальное преобразование изображения с сопоставлением пикселей, чтобы можно было рассчитать и присвоить пикселям соответствующие значения интенсивности. В отличие от других методов интерполяции, таких как интерполяция ближайших соседей и бикубическая интерполяция , билинейная интерполяция использует значения только четырех ближайших пикселей, расположенных по диагонали от данного пикселя, чтобы найти соответствующие значения интенсивности цвета этого пикселя.
Билинейная интерполяция рассматривает ближайшее окружение 2 × 2 известных значений пикселей, окружающее вычисленное местоположение неизвестного пикселя. Затем требуется средневзвешенное значение этих 4 пикселей, чтобы получить окончательное интерполированное значение. [5] [6]

Пример
[ редактировать ]Как видно из примера справа, значение интенсивности в пикселе, вычисленном в строке 20.2, столбце 14.5, можно вычислить путем сначала линейной интерполяции между значениями в столбце 14 и 15 в каждой строке 20 и 21, что дает
а затем линейно интерполировать между этими значениями, давая
Этот алгоритм уменьшает некоторые визуальные искажения, вызванные изменением размера изображения до нецелочисленного коэффициента масштабирования, в отличие от интерполяции ближайшего соседа, из-за которой некоторые пиксели в изображении с измененным размером кажутся больше, чем другие.
Упрощение терминов
[ редактировать ]В этом примере представлены табличные данные о давлении (столбцы) и температуре (строки) как поиск по некоторой переменной.
Т\П | П_{1} | П_{х} | П_{2} |
Т_{1} | V_{11} | В_{1x} | V_{12} |
Т_{х} | В_{хх} | ||
Т_{2} | V_{21} | V_{2x} | V_{22} |
Следующий стандартный расчет по деталям имеет 18 обязательных операций.
Все это можно упростить с первоначальных 18 отдельных операций до 16 отдельных операций как таковых;
Вышеупомянутое имеет две повторяющиеся операции.
Этим двум повторениям можно назначить временные переменные при вычислении одной интерполяции, что сократит количество вычислений до 14 операций, что является минимальным количеством шагов, необходимых для получения желаемой интерполяции. Выполнение этой интерполяции за 14, а не за 18 операций делает ее на 22% более эффективной.
Упрощение терминов является хорошей практикой применения математической методологии в инженерных приложениях и может снизить вычислительные и энергетические требования к процессу.
См. также
[ редактировать ]- Бикубическая интерполяция
- Трилинейная интерполяция
- Сплайн-интерполяция
- Передискретизация Ланцоша
- Ступенчатая интерполяция
- Барицентрические координаты - для интерполяции внутри треугольника или тетраэдра.
Ссылки
[ редактировать ]- ^ Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (1992). Численные рецепты на C: искусство научных вычислений (2-е изд.). Нью-Йорк, штат Нью-Йорк, США: Издательство Кембриджского университета. стр. 123-128 . ISBN 0-521-43108-5 .
- ^ Монасс, Паскаль (10 августа 2019 г.). «Извлечение линий уровня билинейного изображения» . Обработка изображений в режиме онлайн . 9 : 205–219. дои : 10.5201/ipol.2019.269 . ISSN 2105-1232 .
- ^ Килес, Иниго (2010). «Обратная билинейная интерполяция» . iquilezles.org . Архивировано из оригинала 13 августа 2010 г. Проверено 17 февраля 2024 г.
- ^ Определение билинейной интерполяции (популярная статья на www.pcmag.com .
- ^ Хосрави, М.Р. (19 марта 2021 г.). «BL-ALM: слепой масштабируемый фильтр реконструкции с краевым управлением для интеллектуального мониторинга окружающей среды с помощью зеленых сетей IoMT-БПЛА» . Транзакции IEEE по экологически чистым коммуникациям и сетям . 5 (2): 727–736. дои : 10.1109/TGCN.2021.3067555 . S2CID 233669511 .
- ^ «Веб-руководство: Интерполяция цифровых изображений» .