Меня интересует получение 2D-представления облака точек, нанесенного на карту с известной точки обзора, с которой было получено зарегистрированное оптическое изображение сцены с помощью цифровой камеры. Я нашел пример этого здесь: http://live.ece.utexas.edu/research/3dnss/live_color_plus_3d.html, который был получен с использованием Opencv (насколько я могу судить, перепроецирован с моделью камеры-обскуры с использованием uscalib3D), хотя я не получил ответа от авторов относительно того, как это было сделано.
Я хочу, чтобы растр карты выходного диапазона имел такое же разрешение по xy/тому же полю зрения, что и зарегистрированное оптическое изображение, чтобы я мог связать координаты пикселей оптического изображения с координатами xyz облака точек (имея растр, который хранит координаты xyz облака точек, поэтому будет более полезным, чем карта дальности, хранящая расстояние до датчика). Учитывая, что облако точек было собрано из одной позиции лазерного сканирования, расположенной примерно на 20 см ниже камеры, мы можем предположить, что в поле зрения камеры нет закрытых точек. Плотность точек облака точек будет ниже, чем расстояние между пикселями зарегистрированного изображения, поэтому необходимо предположить некоторое сглаживание карты дальности.
Входы:
1) Матрица позы камеры 4x4
2) матрица mx3 координат x,y,z облака точек
3) неискаженное изображение, полученное с точки зрения, описанной в (1)
В основном я кодирую с помощью Matlab, поэтому я бы предпочел, чтобы решение было достижимо в этой среде программирования (opencv mex и т. д. должно быть в порядке). Любые советы и / или предложения будут с благодарностью.
Томас