Я пытаюсь создать сопоставление для положения плитки / пикселя в одном наборе данных мозаичного изображения с положением плитки / пикселя в другом наборе данных (которые приблизительно покрывают одну и ту же область изображения).Из-за поворотов отображаемой области, оси панорамирования, сдвигов и изменений масштаба в этом отображении есть много неизвестных, которые необходимо учитывать.Эта ситуация проиллюстрирована ниже, где прямоугольники представляют отображаемую область для каждой плитки, а расположение плиток определяется соотношением между осью панорамирования (черные линии) и осью камеры:
Проблема сводится к следующей линейной системе, которая по-разному учитывает поворот оси сканирования относительно оси камеры в двух наборах данных, а также поворот, масштаб и сдвиги между отображаемыми областями.в двух наборах данных.К сожалению, я не уверен, что делать с неизвестными:
|tx ty|X|a b|+|px py|X|e f|+|i j|=|tx* ty*|X|k l|+|px* py*|
|c d| |g h| |m n|
Неизвестными в этой системе являются (a, b, c, d, e, f, g, h, i, j, k, l, m, n) и в основном описывают сопоставление позиций мозаичных фрагментов и пикселей в наборе данных1 (tx, ty, px, py) с позициями мозаичных фрагментов и пикселей в наборе данных2 (tx *, ty *, px *, py *),Создание 14 (или более) таких соответствий не является для меня большой проблемой, так как у меня есть регистрация лог-полярных изображений, которая очень хорошо работает для аффинного отображения фрагмента из набора данных1 в фрагмент в наборе данных2, если они содержат достаточно изображения.перекрытия.Проблема в том, что я предпочел бы определить вышеупомянутое сопоставление, а не выполнять эту регистрацию между каждой плиткой в наборе данных1 и 2, что заняло бы вечность !!.
Любая помощь очень ценится!-Craig
Редактировать:
Я только что понял, что могу решить проблему следующим образом (я думаю?):
|tx ty px py 1|X|a b|=|tx* ty* px* py* 1|X|k l|
|c d| |m n|
|e f| |1 0|
|g h| |0 1|
|i j| |1 1|
Это выглядит ближе к тому, что мне нужно, но мне все еще нужна помощь, пытаясь выяснить, как преобразовать ответ, который я получу, в форму, которую я мог бы использовать (самое главное, я думаю, что мне нужно было бы явно знать (k, l, m, n), чтобы преобразоватьотобразил координату обратно в ячейку и положение пикселя в цели .... нет?
Edit2: изменена запись для корректного умножения матриц. Edit3: Добавлены иллюстрации, поскольку теперь я могу!