В настоящее время я пытаюсь вычислить жесткое преобразование между двумя наборами точек, поэтому я попытался использовать код, приведенный в руководстве на pointclouds.org:
http://www.pointclouds.org/documentation/tutorials/iterative_closest_point.php#iterative-closest-point
Для моего случая я изменил только часть, где данные генерируются случайным образом, на то, что загружает данные точек, которые я хочу проанализировать. Все остальное точно так же, как в учебнике ...
(Я также попытался протестировать именно учебный код со случайными данными, на случай, если у меня что-то не так с чтением моих входных данных)
Поскольку я работаю с Qt, я интегрировал библиотеку PCL, библиотеку Eigen и библиотеку FLANN в свой проект. Он находит все заголовки и успешно компилируется с MSVC 2008 ...
К сожалению, я всегда получаю ошибку во время выполнения на
icp.setInputTarget(cloud_out);
говоря:
Не удалось отладить утверждение! Программа:
... MSVC2008 _Qt_SDK_Release \ release \ Project.exe Файл: c: \ Program
Файлы \ Microsoft VIsual Studio 10.0 \ CV \ include \ vector Строка: 1200
Выражение: итератор стирания вектора вне диапазона
[..] ... проверить документацию ... [..]
Кто-нибудь знает, что это значит? Входные облака имеют одинаковый размер и заполненные значения.
Буду благодарен за любую помощь!
ОБНОВЛЕНИЕ 1:
В сообщении об ошибке указывается путь к файлу MSVC 2010 (10.0) ... Поэтому я попытался удалить Visual Studio 2010, поскольку он мне не нужен. Но все же, если я компилирую в режиме отладки, он показывает мне сообщение об ошибке, но вместо Expression: vector iterators incompatible
... Если я сейчас запускаю его в режиме выпуска, он просто падает во время выполнения (в той же строке), но не ' показать это сообщение об ошибке.