QGis para LIDAR: colorir a partir de uma imagem

Tutoriel : LIDAR HD com QGIS 3.32

Neste artigo, irá descobrir como transferir as cores (colourise) de uma imagem ou ortofoto para os pontos de uma nuvem LIDAR utilizando o CloudCompare. Esta renderização é comparável à de um ortofoto, o que facilita o trabalho com nuvens não classificadas e dados classificados.

1- Dados LIDAR no QGis 3.32

2- Descarregar os dados do IGN HD LIDAR e carregá-los no QGis

3- Ferramentas para dados LIDAR no QGis 3.32

4-colorir a partir de uma imagem

Veja este vídeo e muitos outros no nosso canal do Youtube: https://www.youtube.com/@sigterritoires

Quando carrega dados LIDAR no QGis, depara-se com dois tipos de renderização.

No caso de dados não classificados, verá um quadrado cinzento se a simbologia estiver definida para classificação:

exibir as classes de uma nuvem de pontos não classificada

ou um gradiente de cor se tiver uma simbologia de rampa num atributo (neste caso, a intensidade do sinal):

exibir a intensidade do sinal de uma nuvem lidar

No caso dos dados classificados, a visualização das classes é um pouco (não muito) mais significativa:

exibição de classes lidar

Se compararmos estas representações com uma ortofotografia :

orthofotografia

Temos de admitir que é muito mais agradável trabalhar com este último tipo de representação, onde podemos ver os objectos como os veríamos normalmente.

Bem, é perfeitamente possível trabalhar com nuvens de pontos LIDAR com o mesmo tipo de renderização que com uma ortofotografia. Um dos atributos padrão dos pontos LIDAR é o atributo RGB, que é utilizado para armazenar um valor de cor para cada ponto. Para visualizar as cores dos pontos, basta selecionar a simbologia RGB no separador simbologia das propriedades da camada.

simbologia qgis por rgb de uma nuvem lidar

Mas, obviamente, estes valores têm de ser previamente introduzidos. E este não é o caso dos dados IGN HD. Por isso, vamos ver aqui como transferir os valores de cor dos pixéis de uma ortofoto para os pontos correspondentes na nuvem de pontos LIDAR.

Para o fazer, precisa da sua nuvem de pontos LIDAR e de uma ortofoto ou outra imagem aérea da mesma área.

Colorir dados LIDAR com o CloudCompare

Neste capítulo, vamos utilizar o CloudCompare para efetuar a operação. No próximo capítulo, utilizaremos a caixa de ferramentas LAStools.

Porquê fazer isto? Porque a ferramenta utilizada para efetuar esta operação no LAStools faz parte do tratamento da licença paga. Pode continuar a efetuar o processamento, mas o resultado é deliberadamente degradado pelo LAStools. Mesmo que não veja qualquer diferença a olho nu, vamos começar com um tratamento que lhe dará o melhor resultado pelo melhor preço (gratuito).

Além disso, o tratamento com o CloudCompare é bastante simples, mas dá-lhe a oportunidade de se familiarizar com o seu funcionamento. Poderá então utilizar o CloudCompare para operações mais complexas.

Para descarregar o CloudCompare clique aqui.

Iniciando o CloudCompare

Uma vez instalado, abra o programa.

janela inicial do cloudcompare

Utilize o menu File->Open para carregar a nuvem de pontos a processar: aponte para o ficheiro, clique em Open, na janela que se abre clique no botão Apply all.

Aparecerá uma janela que merece alguma explicação:

janela de mudança/escala do cloudcompare

Antes de carregar um ficheiro, o CloudCompare analisa as coordenadas X, Y e Z. Calcula “offsets” para as coordenadas de modo a manter apenas a parte que realmente varia na extensão da área de trabalho. Por exemplo, nesta janela, sugere subtrair o valor -6225500 aos valores Y, que são da ordem dos 6 milhões, para obter valores Y significativos. Uma vez terminado o processamento, nos ficheiros resultantes, adicionará o mesmo valor aos valores Y obtidos. Isto permite trabalhar apenas com valores significativos, preservando as coordenadas verdadeiras, mas fora do processamento.

Para as nuvens de pontos, pode simplesmente aceitar os valores propostos, que serão sempre correctos.

Encontrará a sua nuvem de pontos na janela principal e, quando esta é carregada, o ponto de vista é colocado em cima da nuvem de pontos.


exibição de lidar no cloudcompare

Use o mouse para exibir a nuvem em qualquer uma das três dimensões.
Para uma melhor visualização dos pontos, no painel Properties, procure a secção Color Scale e, em Current , seleccione High contrast.


aprimoramento da exibição lidar do cloudcompare

Carregar o ortofoto

Agora vamos carregar a ortofotografia.

Se utilizar o mesmo procedimento que para a nuvem de pontos, irá carregar a imagem como uma imagem tif. Para o que queremos fazer, precisamos de a carregar como uma nuvem de pontos. Para isso, abra o gestor de ficheiros, vá para o diretório de imagens, clique no ficheiro de imagem e arraste-o para a janela do CloudCompare.

Aparecerá esta janela:

importar mensagem como nuvem de pontos

Clique em Yes.

Tal como com a nuvem de pontos, aparece a janela shift/scale.

correção da altura da imagem no cloudcompare

Aqui temos um valor a ser modificado. Você já deve ter percebido que, na janela do CloudCompare, estamos em uma caixa 3D que se parece com o nosso mundo real, mas que tem suas próprias referências. Diferentemente de um GIS, que determinará se dois pontos em duas camadas diferentes estão no mesmo lugar comparando suas coordenadas XY, no CloudCompare isso será feito calculando a distância nas referências 3D internas. Quando você quiser atribuir um valor RGB a um ponto na nuvem de pontos, ele procurará o pixel mais próximo na imagem. Mas, como estamos em um mundo 3D, esse pixel não é necessariamente o que tem o mesmo XY, mas sim o que tem a menor distância XYZ. Em um terreno irregular, isso pode ser muito diferente do resultado que você obteria com um GIS.

Quando carregamos a nuvem de pontos (veja a imagem acima), os valores de Z estavam em torno de 589 metros. Nossa ortofoto não tem coordenadas Z, ou seja, tem valores Z = 0. Se deixarmos o deslocamento Z como está (com um valor de 0), podemos ter certeza de que os pontos mais próximos não corresponderão às coordenadas XY corretas. Vamos deslocar os pixels da imagem em 589 metros. Assim, as duas camadas ficarão muito próximas e os erros serão mínimos.

Se inserirmos esse valor como 589, a imagem ficará no meio da nuvem de pontos.

exibição de lidar e ortofoto no cloudcompare

Pré-tratamento para coloração

Seria de se esperar que tivéssemos todos os ingredientes necessários para nossa operação de coloração. Mas o problema é que temos duas camadas de pontos, cada uma com milhões de pontos. Encontrar a correspondência entre essas duas camadas levaria muito tempo. Uma maneira de reduzir significativamente esse tempo de processamento é criar um raster TIN da nossa foto. Em seguida, podemos usar os vértices do TIN para colorir nossa nuvem LIDAR.

Para criar um TIN, clique na camada da foto na lista de camadas e, em seguida, na ferramenta CloudCompare Raster.

botão rasterizar no cloudcompare

Isso abre a janela de configuração da transformação raster.

Exceto em casos excepcionais, você verá uma mensagem invalid grid box no parâmetro de size. Não se preocupe, basta clicar no botão Edit Grid e, na janela que se abre, marcar a caixa keep square e, em seguida, OK.

correção de grade rasterizada no cloudcompare

O parâmetro step indica a precisão da grade. Por padrão, é de 1 metro e produz bons resultados, mas você pode aumentar a precisão, embora deva estar ciente de que isso aumenta o tempo de processamento.

Em Active Layer (Camada ativa), selecione RGB

O parâmetro direction (direção) deve ser definido como Z para interpolação horizontal e o parâmetro cell height (altura da célula) pode ser deixado no mínimo ou alterado, mas não fará nenhuma diferença.

Clique em Update grid (Atualizar grade) e você verá uma visualização do resultado

grade a ser usada para rasterização do cloudcompare

Você pode desmarcar a opção Export statistics e clicar em Mesh para começar a criar o TIN.

Você verá o TIN adicionado à lista de camadas do projeto. Em seguida, você pode fechar a janela de rasterização.

Você pode desmarcar o orto original na lista de camadas para ver o TIN que será usado.

Colorir a nuvem de pontos

Tudo está pronto para transferir as cores do TIN para a nossa nuvem LIDAR. Selecione a camada de vértices e a camada Lidar

seleção de camadas para colorização

Para colorir, usaremos o menu Edit -> Color -> Interpolate from another entity (Editar -> Cor -> Interpolar de outra entidade)

interpolate from another entity cloudcompare

Assim que você clicar no menu, o comando será executado.

inicio do processamento de colorização

O CloudCompare não solicita as camadas de origem e destino. Ele assume que a camada de origem é aquela com valores RGB e a camada de destino é aquela sem valores. Se ambas tiverem valores definidos, você deverá primeiro usar o comando CLEAR na camada de destino.

menu limpar cores cloudcompare

O resultado do nosso comando, depois de esperar pacientemente pela conclusão do processamento, é

resultados de cloudcompare colorizador

Tudo o que resta é exportar o resultado como um arquivo .las ou .laz

Selecione a camada LIDAR original, que agora tem valores RGB e, em seguida, no menu File->Save (Arquivo->Salvar). Digite um nome (aqui resultat) e a extensão desejada (.las ou .laz). Você terá sua nova nuvem LIDAR colorida pronta para ser carregada no QGis:

exibir colorir qgis

Você pode aumentar o zoom para ver os pontos coloridos.

zoom exibir nuvem colorida em qgis

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *