/ / SACSegmentation Resultados diferentes para Linux e Windows - c ++, biblioteca de nuvem de pontos, ransac

SSSegmentação Linux e Windows Resultados Diferentes - c ++, point-cloud-library, ransac

Dadas entradas idênticas e código idêntico, umUm modelo de plano diferente é encontrado no Windows em comparação ao Linux usando SACSegmentation em PCL. Por exemplo, o plano identificado no Linux tem um ângulo de rolagem de ~ 7 graus, enquanto o plano do Windows é de ~ 0 graus. Os resultados consecutivos do Windows são idênticos e os resultados consecutivos do Linux. Isso pode estar relacionado ao GCC e ao Visual Studio usando tamanhos diferentes para tipos? Ou o Windows usando uma melhor default_random_engine?

Mesmo cálculo no Linux e Windows -> resultados diferentes

<random> gera o mesmo número no Linux, mas não no Windows

Eu sei que o plano do Windows é o plano melhor identificado. Como posso remediar melhor essa diferença para que a versão Linux também encontre o mesmo plano?

Respostas:

0 para resposta № 1

É sobre o mecanismo aleatório. Se você executar apenas algumas iterações (em relação ao tamanho da sua nuvem), poderá fornecer resultados não confiáveis. Você pode tentar adicionar mais candidatos ao plano no mecanismo RANSAC usando o método .setMaxIterations () para verificar se os resultados se aproximam.