Aplicação CLI desenvolvida em C++ como Projeto de Graduação para o curso de Ciência da Computação da FIPP, Presidente Prudente - SP, 2021 - 2022.
Este projeto busca, a partir de uma coleção de imagens digitais, gerar uma malha tridimensional texturizada da cena observada nas fotos utilizando diversas técnicas de Structure From Motion (SfM) e Multi-View Stereo (MVS) encadeadas em um pipeline de execução.
Fabrício Milanez (orientando)
Francisco Assis da Silva (orientador)
Flávio Pandur Albuquerque Cabral (orientador)
Submetido à Revista Colloquium Exactarum: Em processo de avaliação.
Atualmente, builds nativas são suportadas oficialmente somente em plataformas GNU/Linux devido à falta de suporte de algumas dependências do OpenCV contrib no Windows. Apesar da falta de suporte, esse projeto pode ser compilado no Windows usando o Subsistema do Windows Para Linux (WSL2). Builds nativas em plataformas macOS não foram testadas porém devem funcionar.
Scripts para automatização de build estão planejados, mas por enquanto, para rodar o projeto é necessário fazer a instalação de todas as dependências listadas abaixo manualmente.
- Git (latest recomendado)
- Compilador C++ com suporte ao C++20 (GCC 11+ recomendado)
Nota: Este projeto foi testado com GCC 11.3.0, outros compiladores como LLVM Clang não foram testados. - Build System para C/C++ compatível com Linux:
- GNU Make ou Ninja Build
- CMake ^3.21.4 (latest recomendado)
- OpenCV 3.4.18:
ATENÇÃO: Todos o módulos doopencv
eopencv_contrib
utilizados devem estar na mesma versão (3.4.18). - OpenMVS ^2.0
- Point Cloud Library (PCL) ^1.12.1
- Boost 1.80:
boost_filesystem
boost_graph
boost_iostreams
boost_program_options
boost_system
boost_serialization
- Atualizar README.md
- Introdução
- Build
- Dependências
- verificar se falta alguma dep
- versões do Boost, OpenMVS e PCL usadas
- Dependências
- Adicionar licença (incluindo licenças de terceiros)
- Adicionar link para o artigo uma vez que ele for publicado
- Tornar o projeto cross-platform:
- Criar script (Python ou Ruby) para instalar todas as dependências do projeto
- Converter scripts de teste do projeto de Bash para outra linguagem cross-platform
- Criar uma imagem Docker que rode o script de instalação acima
- Refatorar/limpar código-fonte (branch nova, manter fonte atual como está para que os resultados obtidos no artigo sejam reproduzíveis)