Для проекта, над которым я работаю, мне нужно использовать библиотеку Point Cloud Library, и автор некоторого кода, который я повторно использую, предложил перейти на PCL 1.8.1 и последнюю ветку Eigen3. Я скачал все зависимости и успешно построил их. Я проверил это, убедившись, что вижу их в моем каталоге usr / local / include, а также запустил простые примеры для каждой библиотеки (VTK, Boost, Eigen), чтобы проверить, работают ли они. Пока все хорошо.
Затем я загрузил исходный код PCL с GitHub и могу его настроить. Но когда я пытаюсь его скомпилировать, я вижу такую ошибку: Загрузки / pcl-pcl-1.8.1 / surface / include / pcl / surface / impl /intage_upsampling.hpp: 112: 88: error: cannot convert 'Eigen :: internal :: enable_if, float, float>> :: type { aka Eigen :: IndexedView, float, float>} 'на' float 'при инициализации float val_exp_depth = val_exp_depth_matrix (dx + window_size_, dy + window_size_);
Я использую следующее:
Я новичок в большей части этого, поэтому заранее прошу прощения, если я не смог хорошо объяснить или не поделился с вами достаточной информацией, чтобы вы могли мне помочь. Пожалуйста, дайте мне знать, и я сделаю все, что смогу. Любая помощь горячо приветствуется. Спасибо!
Проблема в том, что матрица val_exp_depth_matrix
индексируется с использованием значений с плавающей запятой (dx
и dy
). Они должны быть приведены к целочисленным типам, например int
или long
.
Эта проблема уже исправлена в репозитории PCL.
Это сработало как шарм! Итак, как вы предложили, я загрузил последний исходный код с Github, а не выпуски, и собрал его. Спасибо @ggael :)
О, хорошо, через пару часов я смогу вернуться в лабораторию и попробовать это. Я дам вам знать, как это происходит. Большое спасибо!