Предположим, у вас есть гомография H, связывающая плоскую поверхность, изображенную на двух разных изображениях, Ir и I. Ir — эталонное изображение, где плоская поверхность параллельна плоскости изображения (и практически занимает все изображение). I — оперативное изображение (фотография плоской поверхности, сделанная с произвольной точки обзора). Пусть H таково, что:
p = Hp', где p — точка в Ir, а p' — соответствующая точка в I.
Предположим, у вас есть две точки p1=(x1,y) и p2=(x2,y) с x1 ‹ x2 относительно изображения Ir. Обратите внимание, что они принадлежат одной и той же строке (общий y). Пусть H'=H^(-1). Используя H', вы можете вычислить соответствующие точки в I из следующих точек: (x1,y),(x1+1,y),...,(x2,y).
Вопрос в том, есть ли способ избежать умножения матрицы на вектор для вычисления всех этих точек? Самый простой способ, который приходит мне в голову, — использовать гомографию для вычисления соответствующих точек p1 и p2 (назовем их p1' и p2'). Чтобы получить остальные (то есть: (x1+1,y), (x1+2,y),...,(x2-1, y)) линейно интерполируйте p1' и p2' в изображении I.
Но поскольку между Ir и I существует проективное преобразование, я думаю, что этот метод весьма неточен.
Любая другая идея? Этот вопрос связан с тем фактом, что мне нужен эффективный с точки зрения вычислений способ извлечения множества (небольших) патчей (примерно 10x10 пикселей) вокруг точки p в Ir в программном обеспечении реального времени.
Спасибо.
Пс. Может быть, тот факт, что я использую небольшие патчи, сделает использование линейной интерполяции подходящим подходом?