ID do artigo: 000027169 Tipo de conteúdo: Solução de problemas Última revisão: 06/08/2021

Como obter a Nuvem de pontos de Intel® RealSense™ câmeras em C #

Ambiente

Câmera Intel® RealSense™ de profundidade D435 Câmera Intel® RealSense™ de profundidade D415

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Resumo

Conversão de Intel RealSense ponto de nuvem em nuvem ponto PCL a partir de Intel® RealSense™ de profundidade

Descrição

Eu quero converter os dados da nuvem de ponto Intel® RealSense™ câmera para o formato PCD, que é convencional em PCL (biblioteca de ponto em nuvem)

Resolução

O Intel® RealSense™ SDK 2.0 vem com um programa de amostra de ponto na nuvem, mas é destinado para C++, assim como a maioria das amostras.  No entanto, olhando para o código do pequeno número de amostras C#, seus scripts têm a #includes nos cabeceadores (algo que não é obrigatório no C#).  Portanto, é possível que o código de nuvem de ponto C++ possa não ser difícil de converter para um script de C#.
 
Experimente o código C++ em um script C# e veja quantos erros, se existem, você recebe e trabalha a partir desse ponto.
 
oialsense/exemplos/pointcloud no mestre IntelRealSense/querealsense Github
 
Para comparação de código C++ versus C# no SDK RealSense 2.0, você pode ver os dois tipos de amostra listados nesta página:
 
lalsense/exemplos no mestre IntelRealSense/querealsense Github
 
Uma opção a fazer, por enquanto, até que a classe PointCloud esteja desemperada para C# é obter os detalhes da câmera (para a câmera de profundidade, se estiver usando a profundidade bruta ou a câmera de cores, se estiver usando a profundidade de acordo com a cor) e implemente o Modelo de câmera Pinodor (que é o que a classe PointCloud faz internamente). Das desiluminações que você recebe da câmera, ppx & ppy são camera_principle_point_x y no link e fx & fy são camera_focal_length_x y.
 
Você precisa loop em cada pixel na imagem de profundidade, obter o valor de profundidade (a mais eficiente é através do ponteiro de dados de profundidade), multiplicá-lo pela escala de profundidade e aplicar a x_3D e y_3D fórmulas fornecidas no link.
 
No caso de alguém ler isso e ficar confundido, o C# é (principalmente) suportado atualmente.

O método utilizado internamente para calcular a nuvem de pontos está aqui.

Invólucro PCL para Intel RealSense suporte à conversão XYZ + RGB
https://github.com/eMrazSVK/JetsonSLAM/blob/master/pcl_testing.cpp

Produtos relacionados

Este artigo aplica-se a 1 produtos

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.