2010-08-13 3 views
1

Я читаю paper, в котором говорится об использовании функции lerp в синтезе изображений. Что такое ерпер и как бы вы синтезировали изображение с использованием одного, если вам даны два изображения в качестве входных данных?Как выполнить линейную интерполяцию между изображениями

ответ

2

'lerp'ing - это просто способ оценить промежуточную ценность. Например, если одно значение равно 10, а следующее - 8, функция «lerp» может вернуться 9. Существует несколько способов сделать оценку - линейной, тригонометрической и т. Д. На своем простом, линейном, вы просто принимаете (distance from value 1 * value 1) + (distance from value 2 * value 2) где расстояние колеблется от 0 до 1.

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

Я должен добавить, я посмотрел на эту статью, и она ссылается на шум Перлина. В этом типе алгоритма функции lerp'ing используются довольно широко для вычисления значений между точками, в которых существуют данные, которые могут быть переданы в алгоритм perlin или фрактала для генерации значения для этой промежуточной точки.

0

Как бы вы его синтезировали? Используя функцию. Функция даст вам выход для заданных входов на любом пикселе. Интерполяция двух изображений не имеет никакого смысла, но вам, вероятно, интересно использовать интерполяцию для изменения размера. Он также обладает некоторыми интересными свойствами. Интерпретатор sinc эквивалентен запуску изображения через низкочастотный фильтр из кирпичной стены в частотном пространстве.

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

0

Что именно представляет собой лерп и

лерп (фактор, а, б) = коэффициент * а + (1,0 - фактор) * б

, где фактор находится в диапазоне [0, 1,0]

См wikipedia

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

Вам нужны два исходных изображения (src1, src2) и целевое изображение (dst) равного размера. Плюс фактор интерполяции.

Тогда для каждого пиксела делать (RGB цвет):

dst[x][y].r = lerp(factor, src1[x][y].r, src2[x][y].r) 
dst[x][y].g = lerp(factor, src1[x][y].g, src2[x][y].g) 
dst[x][y].b = lerp(factor, src1[x][y].b, src2[x][y].b) 
Смежные вопросы