Учитывая идентичные входные данные и идентичный код, в Windows обнаружена другая модель плоскости по сравнению с Linux, использующая SACSegmentation в PCL. Для одного примера, идентифицированная плоскость в Linux имеет угол крена ~ 7 градусов, где плоскость Windows составляет ~ 0 градусов. Последовательные результаты Windows идентичны, а также последовательные результаты Linux. Может ли это быть связано с GCC и Visual Studio, использующими разные размеры для типов? Или Windows, используя лучше default_random_engine
?
Тот же расчет для Linux и Windows -> разные результаты
<случайный> генерирует то же число в Linux, но не в Windows
Я знаю, что самолет Windows — лучше идентифицированный самолет. Как лучше всего исправить эту разницу, чтобы версия для Linux также находила эту же плоскость?
Речь идет о случайном двигателе. Если вы выполните только несколько итераций (в зависимости от размера вашего облака), это может дать ненадежные результаты. Вы можете попытаться добавить больше кандидатов на плоскость в ваш движок RANSAC с помощью метода .setMaxIterations (), чтобы увидеть, приближаются ли результаты друг к другу.
Других решений пока нет …