Учитывая два буфера изображения (предположим, что это массив из ints size width * height, с каждым элементом - значение цвета), как я могу отобразить область, определенную четырьмя сторонами из одного буфера изображения, в другое (всегда квадратное) изображение буфер? Я понял, что это называется "проективным преобразованием".
Я также ищу общий (а не язык или конкретный) способ сделать это, чтобы его можно было разумно применять на любом языке, не полагаясь на "магическую функцию X, которая выполняет всю работу для меня".
Пример: я написал короткую программу на Java, используя библиотеку обработки (process.org), которая захватывает видео с камеры. Во время начального шага "калибровки" захваченное видео выводится непосредственно в окно. Затем пользователь нажимает на четыре точки, чтобы определить область видео, которое будет преобразовано, а затем отображено в квадратное окно во время последующей работы программы. Если пользователь должен был щелкнуть по четырем точкам, определяющим углы двери, видимые под углом на выходе камеры, то это преобразование приведет к тому, что последующее видео отобразит преобразованное изображение двери во всю область окна, хотя несколько искажен.