С камерой внутри цилиндра я захватываю изображение. Я хочу преобразовать это изображение в плоскость 2d. Изображение внутри цилиндра имеет много точек, которые образуют сетку.Проецирование изображения изнутри цилиндра в плоскость 2D [Matlab]
То, что я пытался сделать, было оценить трансформацию. При анализе blob я могу определить центр каждой точки и получить координаты в пикселях. Я сохраняю это в матрице под названием ImCilynder. После этого я создаю матрицу с координатами тех точек в плоскости с именем Im2d.
рассчитать преобразование (H), решая уравнение:
Imcilynder * H= Im2d;
H= matrix [9x1]
H=pinv(Imcilynder) * Im2d
Но, когда я делаю тест с теми же точками, результат является абсолютно случайным, так что я делаю что-то неправильно.
Есть ли лучший способ решить эту проблему? Вы можете мне помочь?
Объясняя лучше,
Я пытаюсь найти преобразование, которое преобразует изображение выше этого изображения:
Так, чтобы уточнить, я хочу проекцию точек, которые я вижу в первое изображение на плоскость. В основном я хочу, чтобы развернуть цилиндр.
После вычисления матрицы преобразования. Я ожидаю умножить первое изображение на матрицу преобразования и получить точки в плоскости. Или умножить координаты центра черных точек и получить координаты этих точек на плоскости. Возможно ли это?
Большое спасибо,
Афонсу
Я не уверен, может ли линейная трансформация описать это из cilinder2plane. Интересно, однако. –
Seconding Ander Biguri, это определенно не линейная трансформация. –
Возможно, связано: http://stackoverflow.com/questions/7981815/projection-of-a-plane-onto-a-cylinder –