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

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

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

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

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

Содержание
  • 1 Алгоритм
    • 1.1 Альтернативный алгоритм
    • 1.2 Единичный квадрат
    • 1.3 Нелинейный
  • 2 Применение в обработке изображений
  • 3 См. Также
  • 4 Ссылки
Алгоритм

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

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

f (x, y 1) ≈ x 2 - xx 2 - x 1 f (Q 11) + x - x 1 x 2 - x 1 f (Q 21), f (x, y 2) ≈ x 2 - xx 2 - x 1 f (вопрос 12) + x - x 1 x 2 - x 1 f (вопрос 22). {\ displaystyle {\ begin {align} f (x, y_ {1}) \ приблизительно {\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {11}) + {\ frac {x-x_ {1}} {x_ {2} -x_ {1}}} f (Q_ {21}), \\ f (x, y_ {2}) \ приблизительно {\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {12}) + {\ frac {x-x_ {1}} {x_ {2} -x_ {1}} } f (Q_ {22}). \ end {align}}}{\ displaystyle {\ begin {align} f (x, y_ {1}) \ приблизительно {\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {11}) + {\ frac {x-x_ {1}} {x_ {2} -x_ {1}}} f (Q_ {21}), \\ f (x, y_ {2}) \ приблизительно {\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {12}) + {\ frac { x-x_ {1}} {x_ {2} -x_ {1}}} f (Q_ {22}). \ end {align}}}

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

f (x, y) ≈ y 2 - yy 2 - y 1 f (x, y 1) + y - y 1 y 2 - y 1 f (x, y 2) = y 2 - yy 2 - y 1 (x 2 - xx 2 - x 1 f (Q 11) + x - x 1 x 2 - x 1 f (Q 21)) + y - y 1 y 2 - y 1 (x 2 - xx 2 - x 1 f (Q 12) + x - x 1 x 2 - x 1 f (Q 22)) = 1 (x 2 - x 1) (y 2 - y 1) (f (Q 11) (x 2 - x) (y 2 - y) + f (Q 21) (x - x 1).) (y 2 - y) + f (Q 12) (x 2 - x) (y - y 1) + f (Q 22) (x - x 1) (y - y 1)) = 1 (x 2 - x 1) (y 2 - y 1) [x 2 - xx - x 1] [f (Q 11) f (Q 12) f (Q 21) f (Q 22)] [y 2 - yy - y 1]. {\ displaystyle {\ begin {align} f (x, y) \ приблизительно {\ frac {y_ {2} -y} {y_ {2} -y_ {1}}} f (x, y_ {1}) + {\ frac {y-y_ {1}} {y_ {2} -y_ {1}}} f (x, y_ {2}) \\ = {\ frac {y_ {2} -y} {y_ {2} -y_ {1}}} \ left ({\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {11}) + {\ frac {x- x_ {1}} {x_ {2} -x_ {1}}} f (Q_ {21}) \ right) + {\ frac {y-y_ {1}} {y_ {2} -y_ {1}} } \ left ({\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {12}) + {\ frac {x-x_ {1}} {x_ {2 } -x_ {1}}} f (Q_ {22}) \ right) \\ = {\ frac {1} {(x_ {2} -x_ {1}) (y_ {2} -y_ {1})}} \ left (f (Q_ {11}) (x_ {2} -x) (y_ {2} -y) + f (Q_ {21}) (x-x_ {1}) (y_ {2} -y) + f (Q_ {12}) (x_ {2} -x) (y-y_ {1}) + f (Q_ {22}) (x-x_ {1}) (y-y_ {1}) \ right) \\ = {\ frac {1} {(x_ {2} -x_ {1}) (y_ {2} -y_ {1})}} {\ begin {bmatrix} x_ {2} - x x-x_ {1} \ end {bmatrix}} {\ begin {bmatrix} f (Q_ {11}) f (Q_ {12}) \\ f (Q_ {21}) f (Q_ {22}) \ end {bmatrix}} {\ begin {bmatrix} y_ {2} -y \\ y-y_ {1} \ end {bmatrix}}. \ end {align}}}{\ displaystyle {\ begin {align} f (x, y) \ приблизительно {\ frac {y_ {2} -y} {y_ {2} -y_ {1}}} f (x, y_ {1}) + {\ frac {y-y_ {1}} {y_ {2} -y_ {1}}} f (x, y_ {2}) \\ = {\ frac {y_ {2} -y} {y_ {2} -y_ {1}}} \ left ({\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {11}) + {\ frac {x-x_ {1}} {x_ {2} -x_) {1}}} f (Q_ {21}) \ right) + {\ frac {y-y_ {1}} {y_ {2} -y_ {1}}} \ left ({\ frac {x_ {2} -x} {x_ {2} -x_ {1}}} f (Q_ {12}) + {\ frac {x-x_ {1}} {x_ {2} -x_ {1}}} f (Q_ { 22}) \ right) \\ = {\ frac {1} {(x_ {2} -x_ {1}) (y_ {2} -y_ {1})}} \ left (f (Q_ {11}) (x_ {2} -x) (y_ {2} -y) + f (Q_ {21}) (x-x_ {1}) (y_ {2} -y) + f (Q_ {12}) ( x_ {2} -x) (y-y_ {1}) + f (Q_ {22}) (x-x_ {1}) (y-y_ {1}) \ right) \\ = {\ frac { 1} {(x_ {2} -x_ {1}) (y_ {2} -y_ {1})}} {\ begin {bmatrix} x_ {2} -x x-x_ {1} \ end {bmatrix}} {\ begin {bmatrix} f (Q_ {11}) f (Q_ {12}) \\ f (Q_ {21}) f (Q_ {22}) \ end {bmatrix}} {\ begin {bmatrix} y_ { 2} -y \\ y-y_ {1} \ end {bmatrix}}. \ End {align}}}

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

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

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

f (x, y) ≈ a 0 + a 1 x + a 2 y + a 3 xy, {\ displaystyle f (x, y) \ приблизительно a_ {0} + a_ {1} x + a_ {2} y + a_ {3} xy,}{\ displaystyle f (x, y) \ приблизительно a_ {0} + a_ {1} x + a_ {2} y + a_ {3} xy,}

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

[1 x 1 y 1 x 1 y 1 1 x 1 y 2 x 1 y 2 1 x 2 y 1 x 2 y 1 1 x 2 y 2 x 2 y 2] [a 0 a 1 a 2 a 3] = [f (Q 11) f (Q 12) f (Q 21) f (Q 22)], {\ displaystyle {\ begin {align} {\ begin {bmatrix} 1 x_ {1} y_ {1} x_ {1} y_ {1} \\ 1 x_ {1} y_ {2} x_ {1} y_ {2} \\ 1 x_ {2} y_ {1} x_ {2} y_ {1} \\ 1 x_ {2} y_ {2} x_ {2} y_ {2} \ end {bmatrix}} {\ begin {bmatrix} a_ { 0} \\ a_ {1} \\ a_ {2} \\ a_ {3} \ end {bmatrix}} = {\ begin {bmatrix} f (Q_ {11}) \\ f (Q_ {12}) \ \ f (Q_ {21}) \\ f (Q_ {22}) \ end {bmatrix}}, \ end {align}}}{\ displaystyle {\ begin {align} { \ begin {bmatrix} 1 x_ {1} y_ {1} x_ {1} y_ {1} \\ 1 x_ {1} y_ {2} x_ {1} y_ {2} \\ 1 x_ {2} y_ {1} x_ {2} y_ {1} \\ 1 x_ {2} y_ {2} x_ {2} y_ {2} \ end {bmatrix}} {\ begin {bmatrix} a_ {0} \\ a_ {1} \\ a_ {2} \\ a_ {3} \ end {bmatrix}} = {\ begin {bmatrix} f (Q_ {11}) \\ f (Q_ {12}) \\ f (Q_ {21}) \\ f (Q_ {22}) \ end {bmatrix}}, \ end {align}}}

, что дает результат

a 0 = f (Q 11) x 2 y 2 (x 1 - x 2) (y 1 - y 2) + f (Q 12) x 2 y 1 (x 1 - x 2) (y 2 - y 1) + f (Q 21) x 1 y 2 (x 1 - x 2) (y 2 - y 1) + f (Q 22) x 1 y 1 (x 1 - x 2) (y 1 - y 2), a 1 = f (Q 11) y 2 ( x 1 - x 2) (y 2 - y 1) + f (Q 12) y 1 (x 1 - x 2) (y 1 - y 2) + f (Q 21) y 2 (x 1 - x 2) (y 1 - y 2) + f (Q 22) y 1 (x 1 - x 2) (y 2 - y 1), a 2 = f (Q 11) x 2 (x 1 - x 2) (y 2 - y 1) + f (Q 12) x 2 (x 1 - x 2) (y 1 - y 2) + f (Q 21) x 1 (x 1 - x 2) (y 1 - y 2) + f (Q 22) x 1 (x 1 - x 2) (y 2 - y 1), a 3 = f (Q 11) (x 1 - x 2) (y 1 - y 2) + f (12) (x 1 - x 2) (y 2 - y 1) + f (Q 21) (x 1 - x 2) (y 2 - y 1) + f (Q 22) (x 1 - x 2)) (у 1 - у 2). {\ displaystyle {\ begin {align} a_ {0} = {\ frac {f (Q_ {11}) x_ {2} y_ {2}} {(x_ {1} -x_ {2}) (y_ { 1} -y_ {2})}} + {\ frac {f (Q_ {12}) x_ {2} y_ {1}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {21}) x_ {1} y_ {2}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1}) }} + {\ frac {f (Q_ {22}) x_ {1} y_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}}, \ \ a_ {1} = {\ frac {f (Q_ {11}) y_ {2}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + { \ frac {f (Q_ {12}) y_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {21 }) y_ {2}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {22}) y_ {1}} { (x_ {1} -x_ {2}) (y_ {2} -y_ {1})}}, \\ a_ {2} = {\ frac {f (Q_ {11}) x_ {2}} { (x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {12}) x_ {2}} {(x_ {1} -x_ { 2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {21}) x_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {22}) x_ {1}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}}, \\ a_ {3} = {\ frac {f (Q_ {11})} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {12})} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {21})} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {22})} {(x_ {1} -x_ {2}) (y_ { 1} -y_ {2})}}. \ End {align}}}{\ displaystyle {\ begin {align} a_ {0} = {\ frac {f (Q_ {11}) x_ {2) } y_ {2}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {12}) x_ {2} y_ {1 }} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {21}) x_ {1} y_ {2}} {( x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {22}) x_ {1} y_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}}, \\ a_ {1} = {\ frac {f (Q_ {11}) y_ {2}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {12}) y_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {21}) y_ {2}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {22}) y_ {1}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}}, \\ a_ { 2} = {\ frac {f (Q_ {11}) x_ {2}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac { f (Q_ {12}) x_ {2}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {21}) x_ {1}} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2}) }} + {\ frac {f (Q_ {22}) x_ {1}} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}}, \\ a_ {3 } = {\ frac {f (Q_ {11})} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2})}} + {\ frac {f (Q_ {12 })} {(x_ {1} -x_ {2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {21})} {(x_ {1} -x_ { 2}) (y_ {2} -y_ {1})}} + {\ frac {f (Q_ {22})} {(x_ {1} -x_ {2}) (y_ {1} -y_ {2 })}}. \ end {align}}}

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

е (Икс, Y) ≈ b 11 f (Q 11) + b 12 f (Q 12) + b 21 f (Q 21) + b 22 f (Q 22), {\ displaystyle f (x, y) \ приблизительно b_ {11} f (Q_ {11}) + b_ {12} f (Q_ {12}) + b_ {21} f (Q_ {21}) + b_ {22} f (Q_ {22}), }{\ displaystyle f (x, y) \ приблизительно b_ {11} f (Q_ {11}) + b_ {12} f (Q_ {12}) + b_ {21} f (Q_ {21}) + b_ {22} f (Q_ {22}),}

где коэффициенты находятся путем решения

[b 11 b 12 b 21 b 22] = ([1 x 1 y 1 x 1 y 1 1 x 1 y 2 x 1 y 2 1 x 2 y 1 x 2 y 1 1 x 2 y 2 x 2 y 2] - 1) T [1 xyxy]. {\ displaystyle {\ begin {bmatrix} b_ {11} \\ b_ {12} \\ b_ {21} \\ b_ {22} \ end {bmatrix}} = \ left ({\ begin {bmatrix} 1 x_ {1 } y_ {1} x_ {1} y_ {1} \\ 1 x_ {1} y_ {2} x_ {1} y_ {2} \\ 1 x_ {2} y_ {1} x_ {2} y_ {1} \ \ 1 x_ {2} y_ {2} x_ {2} y_ {2} \ end {bmatrix}} ^ {- 1} \ right) ^ {\ rm {T}} {\ begin {bmatrix} 1 \\ x \ \ y \\ xy \ end {bmatrix}}.}{\ displaystyle {\ begin {bmatrix} b_ {11} \\ b_ {12 } \\ b_ {21} \\ b_ {22} \ end {bmatrix}} = \ left ({\ begin {bmatrix} 1 x_ {1} y_ {1} x_ {1} y_ {1} \\ 1 x_ {1 } y_ {2} x_ {1} y_ {2} \\ 1 x_ {2} y_ {1} x_ {2} y_ {1} \\ 1 x_ {2} y_ {2} x_ {2} y_ {2} \ end {bmatrix}} ^ {- 1} \ right) ^ {\ rm {T}} {\ begin {bmatrix} 1 \\ x \\ y \\ xy \ end {bmatrix}}.}

Единичный квадрат

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

f (x, y) ≈ f (0, 0) (1 - x) (1 - y) + f ( 1, 0) Икс (1 - Y) + е (0, 1) (1 - Икс) Y + F (1, 1) ху, {\ Displaystyle f (x, y) \ приблизительно f (0,0) ( 1-x) (1-y) + f (1,0) x (1-y) + f (0,1) (1-x) y + f (1,1) xy,}{\ displaystyle f (x, y) \ приблизительно f (0,0) (1-x) (1-y) + f (1,0) x (1-y) + f (0,1) (1-x) y + f (1, 1) ху,}

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

f (x, y) ≈ [1 - xx] [f (0, 0) f (0, 1) f (1, 0) f (1, 1)] [1 - yy ]. {\ displaystyle f (x, y) \ приблизительно {\ begin {bmatrix} 1-x x \ end {bmatrix}} {\ begin {bmatrix} f (0,0) f (0,1) \\ f (1, 0) f (1,1) \ end {bmatrix}} {\ begin {bmatrix} 1-y \\ y \ end {bmatrix}}.}{\ displaystyle е (х, у) \ приблизительно {\ begin {bmatrix} 1-x x \ end {bmatrix}} {\ begin {bmatrix} f (0,0) f (0,1) \\ f (1,0) f (1,1) \ end {bmatrix}} {\ begin {bmatrix} 1-y \\ y \ end {bmatrix}}.}
Геометрическая визуализация билинейной интерполяции. Произведение значения в желаемой точке (черный) и всей площади равно сумме произведений значения в каждом углу и частичной площади, диагонально противоположной углу (соответствующие цвета).

Нелинейный

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

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

е (x, y) = ∑ i = 1 2 ∑ j = 1 2 aijxiyj = a 11 + a 21 x + a 12 y + a 22 xy, {\ displaystyle f (x, y) = \ sum _ {i = 1} ^ {2} \ sum _ {j = 1} ^ {2} a_ {ij} x ^ {i} y ^ {j} = a_ {11} + a_ {21} x + a_ {12} y + a_ {22} xy,}{\ displaystyle f (x, y) = \ sum _ {i = 1} ^ {2} \ sum _ {j = 1} ^ {2} a_ {ij} x ^ {i} y ^ {j} = a_ {11} + a_ {21} x + a_ {12} y + a_ {22} xy,}

где

a 11 = f (1, 1), a 21 = f (2, 1) - f (1, 1), a 12 = f (1, 2) - f (1, 1), a 22 = f (2, 2) + f (1, 1) - (f (2, 1) + f (1, 2)). {\ displaystyle {\ begin {align} a_ {11} = f (1,1), \\ a_ {21} = f (2,1) -f (1,1), \\ a_ {12} = f (1,2) -f (1,1), \\ a_ {22} = f (2,2) + f (1,1) - {\ big (} f (2,1) + f (1,2) {\ big)}. \ end {align}}}{\ displaystyle {\ begin {align} a_ {11} = f ( 1,1), \\ a_ {21} = f (2,1) -f (1,1), \\ a_ {12} = f (1,2) -f (1,1), \ \ a_ {22} = f (2,2) + f (1,1) - {\ big (} f (2,1) + f (1,2) {\ big)}. \ end {выравнивается} }}

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

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

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

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

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

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

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

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

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

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

I 20, 14,5 = 15 - 14,5 15 - 14 ⋅ 91 + 14,5 - 14 15 - 14 ⋅ 210 = 150,5, I 21, 14,5 = 15 - 14,5 15 - 14 ⋅ 162 + 14,5 - 14 15 - 14 ⋅ 95 = 128,5, {\ displaystyle {\ begin {align} I_ {20,14,5} = { \ frac {15-14.5} {15-14}} \ cdot 91 + {\ frac {14.5-14} {15-14}} \ cdot 210 = 150,5, \\ I_ {21,14,5} = {\ frac {15-14.5} {15-14}} \ cdot 162 + {\ frac {14.5-14} {15-14}} \ cdot 95 = 128.5, \ end {align}}}{\ displaystyle {\ begin {align} I_ {20,14.5} = {\ frac {15-14.5} {15-14}} \ cdot 91 + {\ frac {14.5-14} {15 -14}} \ cdot 210 = 150,5, \\ I_ {21,14,5} = {\ frac {15-14.5} {15-14}} \ cdot 162 + {\ frac {14.5-14} {15-14 }} \ cdot 95 = 128,5, \ end {align}}}

с последующей линейной интерполяцией между эти значения дают

I 20,2, 14,5 = 21-20,2 21-20 150,5 + 20,2-20 21-20 ⋅ 128,5 = 146,1. {\ displaystyle I_ {20.2,14.5} = {\ frac {21-20.2} {21-20}} \ cdot 150.5 + {\ frac {20.2-20} {21-20}} \ cdot 128.5 = 146.1.}{\ displaystyle I_ {20.2,14.5} = {\ frac {21-20.2} {21-20}} \ cdot 150.5 + {\ frac {20.2-20} {21-20}} \ cdot 128.5 = 146.1.}

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

См. Также
Ссылки
  1. ^Press, William H.; Teukolsky, Saul A.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (1992). Числовые рецепты на C: искусство научных вычислений (2-е изд.). Нью-Йорк, Нью-Йорк, США: Издательство Кембриджского университета. Стр. 123-128. ISBN 0-521-43108-5.
  2. ^Определение билинейной интерполяции (популярная статья на www.pcmag.com.
  3. ^«Веб-руководство: Интерполяция цифровых изображений».
Последняя правка сделана 2021-05-12 05:32:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте