- João Augusto Tonial laner
- Leandro Tonietto
Esse projeto cria um panorama a partir de fotos tiradas de um afloramento e processa uma nuvem de pontos associada a essas fotos, correlacionando cada pixel da imagem com um respectivo ponto. Após a correlação realizada, o usuário pode selecionar os pontos intrínsecos a nuvem de pontos e ao apertar "enter", um plano de ajuste é calculado para os pontos selecionados.
.
├── CMakeLists.txt
├── LICENSE
├── README.md
├── include
│ ├── ClickHandler.h
│ ├── CloudPointProcessor.h
│ └── Stitcher.h
├── resources
│ ├── images
│ │ ├── IMG_5375.JPG
│ │ ├── .
│ │ ├── .
│ │ ├── .
│ │ ├── .
│ │ ├── .
│ │ └── IMG_5417.JPG
│ ├── panorama.jpg
│ └── point-cloud.txt
└── src
├── ClickHandler.cpp
├── CloudPointProcessor.cpp
├── Main.cpp
└── Stitcher.cpp
- CMake 3.10+
- C++ 17
- OpenCV 4.6
-
Clone o repositório para seu diretório local:
git clone https://gitlab.com/joaoaugustolaner/plane-extraction.git && cd plane-extraction/
-
Crie um diretório
buildna raiz do projeto clonado:mkdir build/ && cd build/
-
Execute o CMakeLists.txt para gerar o Makefile e então execute o comando make:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
- Crie um link simbólico na raiz do projeto para que a IDE possa achar com mais facilidade, caso necesário.
ln -s build/compile_commands.json compile_commands.json
-
Baixe as imagens e nuvem de pontos;
-
Crie o diretório
/resourcesna raiz do projeto;mkdir /resources && cd resources/
-
Extraia as imagens em
/resources, assim como a nuvem de pontos.Caso esteja na em
.../plane-extraction/resources:unzip path/to/images ./ && mv path/to/point-cloud.txt ./
-
Confira se todas as imagens (IMG_5375.JPG ... IMG_5417.JPG) estão presentes no diretório
/resources/images. -
Confira se o arquivo com a nuvem de pontos (point-cloud.txt) está em
/resources -
Vá ao diretório build criado anteriormente e execute o programa;
cd ../buildmake./app
Os pontos marcados com ! são prioridade para o desenvolvimento do projeto.
- Adicionar suporte a multi threading (!)
- Criar segmentos ampliados das nuvens de pontos (ferramenta de recorte e ampliação)
- Criar linhas que segmentam os pontos selecionados (ferramenta de vetorização).