@ Iwillnotexist Idonotexist представил свой код для преобразования перспективы изображения (повороты вокруг 3 осей): ссылка на сайт
Я ищу функцию (или математику), чтобы сделать обратное преобразование перспективы.
Давайте сделаем предположение, что мое «входное изображение» является результатом его warpImage()
функция, и все углы (тэта, фи и гамма), масштаб и fovy также известны.
Я ищу функцию (или математику) для вычисления обратного преобразования (черная граница не имеет значения), чтобы получить основное изображение.
Как я могу это сделать?
Основная идея заключается в том, что вам нужно найти обратное преобразование. В связанном вопросе у них есть F = P T R1 R2
где P
это проективное преобразование, T
это перевод, и R1
, R2
два поворота.
обозначать F*
как обратное преобразование. Мы можем обратное как F* = R2* R1* T* P*
, Обратите внимание, что порядок изменений. Три из них просты R1*
это просто еще один поворот, но с отрицательным углом. Таким образом, первое обратное вращение будет
cos th sin th 0 0
R1* = -sin th cos th 0 0
0 0 1 0
0 0 1
Обратите внимание, что знаки двух терминов греха поменялись местами.
Обратный перевод — это просто перевод в противоположном направлении.
1 0 0 0
T*= 0 1 0 0
0 0 1 h
0 0 0 1
Вы можете проверить эти вычисления T * T, которые должны быть единичной матрицей.
Самое хитрое — это проективный компонент, который мы имеем
cot(fv/2) 0 0 0
P = 0 cot(fv/2) 0 0
0 0 -(f+n)/(f-n) -2 f n / (f-n)
0 0 -1 0
Обратное это
tan(fv/2) 0 0 0
P*= 0 tan(fv/2) 0 0
0 0 0 -2
0 0 (n-f)/(f n) (f+n)/(f n)
Вольфрам альфа обратный с v = fv
Затем вам нужно умножить их вместе в обратном порядке, чтобы получить окончательную матрицу.
У меня также были проблемы с обратным преобразованием моего изображения.
Вам нужно хранить очки
ptsInPt2f and ptsOutPt2f
которые вычисляются в методе «warpMatrix».
Для обратного преобразования просто используйте тот же метод
M = getPerspectiveTransform (ptsOutPt2f, ptsInPt2f);
но с обратным порядком параметров (вывод в качестве первого аргумента, ввод в качестве второго).
После этого простой урожай избавится от всего черного.