Neste ponto, a aplicação da textura está pronta. Foi criado um módulo que lê um modelo triangulado em formato .ply ou .obj, lê uma imagem e lê um ficheiro onde está a matriz de transformação e a matriz intrínseca da câmara. Desta forma torna rápida e fácil o teste de textura dos modelos. Seguem-se alguns exemplos:
AtlasCar e o 3D
sexta-feira, 14 de janeiro de 2011
terça-feira, 14 de dezembro de 2010
Ponto de Situação da semana
Já está aplicada a textura no modelo mas não está a 100%...a aplicação das matrizes de transformação não produzem os resultados esperados. Poderá estar relacionado com os valores da matriz mas que agora é uma questão de afinação. Está a funcionar uma aplicação (beta) que abre 2 janelas de visualização onde numa mostra o modelo triangulado c/ textura e na outra a imagem aplicada na textura e seleccionando uma célula/ponto no modelo, é apresentado na 2ª janela qual o pixel correspondente à selecção. Isto permite saber se a aplicação da textura está a ser bem realizada.
Ainda estou de volta de umas afinações mas espero ter isto pronto em breve...
Ainda estou de volta de umas afinações mas espero ter isto pronto em breve...
terça-feira, 7 de dezembro de 2010
Prontinho para textura
A VCGlib usa uma aplicação para a criação de uma makefile e aproveitei essa makefile e integrei o vtk e o passo seguinte foi a integração com a estrutura própria usada no vcglib. Foi realizado com sucesso, neste momento tenho uma aplicação que lê um ficheiro com a nuvem de pontos em .asc, abre-o para uma estrutura vtk, é convertido para a estrutura do vcglib, é triangulado e o resultado é convertido de novo para uma estrutura do vtk (vtkPolyData). O resultado triangulado é apresentado numa janela.
Tendo a malhagem e armazenada numa estrutura vtk, o passo seguinte será a aplicação de textura, a qual espero ter terminada o mais cedo possível.
Entretanto foi realizado um estudo dos tempos de processamento e número de pontos da nuvem associados. São apresentados vários modelos triangulados, com diferentes números de pontos e os tempos de processamento da aplicação do algoritmo com respectivas conclusões.
Tendo a malhagem e armazenada numa estrutura vtk, o passo seguinte será a aplicação de textura, a qual espero ter terminada o mais cedo possível.
Entretanto foi realizado um estudo dos tempos de processamento e número de pontos da nuvem associados. São apresentados vários modelos triangulados, com diferentes números de pontos e os tempos de processamento da aplicação do algoritmo com respectivas conclusões.
terça-feira, 30 de novembro de 2010
Triangulações
Com o .h com o algoritmo do BPA fornecido pela biblioteca vcglib, já analisei os parâmetros e dá para mexer em todos os parâmetros, desde tamanho máximo/minimo da aresta (aqui o mínimo é expresso em percentagem do raio que agrega pontos que estejam abaixo dessa distancia). O angulo máximo formado por 2 fazes, que por defeito é cos(PI/2) = 0.0. Pelo que percebi terá a ver para evitar que a "esfera" volte para trás, ou seja, caso não encontre um ponto ao rodar sobre o "edge", irá voltar para trás e limitar o ângulo irá eliminar esse problema. Já entendi como é feito o auto-guess do raio...é uma abordagem simples e funciona bastante bem: sqrt((diagonal(boundbox)2)/n_vertices). Pelo que se entende é que faz uma média da distância entre cada vértice.
Já estou a fazer o documento com testes e resultados mas ainda está em versão beta... Já estive a ver melhor a estrutura do MESH que eles usam mas analisar o código deles nem sempre é uma coisa fácil de mastigar mas já encontrei uns exemplos que ainda estou a analisar.
terça-feira, 23 de novembro de 2010
Ponto de Situação da semana
Nesta última semana encontrei disponível o algoritmo do Ball Pivoting disponível e opensource. É o algoritmo usado pelo Meshlab e vem integrado na biblioteca vcglib e é um BPA ligeiramente modificado mas o princípio base está lá e estive a tentar integrar o algoritmo com o meu trabalho. O problema é que o código é escrito usando estruturas definidas pelo próprio Meshlab e obriga à conversão das estruturas para uma estrutura do vtk.
Tentei fazer alguns exemplos (se bem que não haja quase nada...) e um deles ainda não consegui por a funcionar e o outro consegui. O segundo exemplo tem como input um ficheiro .ply com a nuvem de pontos e devolve um ficheiro .ply com a malhagem. Este executável funciona mas o ideal é converter sem a necessidade de exportar/importar ficheiros pelo meio. Um outro problema que surgiu pelo meio foi mais uma vez a questão da makefile...existe o "qmake" que gera a makefile para compilar a vcglib e a makefile não sai perfeita e é preciso fazer umas afinações em questões de inclusão de ficheiros .cpp "escondidos" nas pastas do vcglib. Consegui criar uma makefile que não necessita do "qmake" e assim permite integrar numa makefile ja existente.
Vou ter que investigar um pouco sobre esta vcglib...
Tentei fazer alguns exemplos (se bem que não haja quase nada...) e um deles ainda não consegui por a funcionar e o outro consegui. O segundo exemplo tem como input um ficheiro .ply com a nuvem de pontos e devolve um ficheiro .ply com a malhagem. Este executável funciona mas o ideal é converter sem a necessidade de exportar/importar ficheiros pelo meio. Um outro problema que surgiu pelo meio foi mais uma vez a questão da makefile...existe o "qmake" que gera a makefile para compilar a vcglib e a makefile não sai perfeita e é preciso fazer umas afinações em questões de inclusão de ficheiros .cpp "escondidos" nas pastas do vcglib. Consegui criar uma makefile que não necessita do "qmake" e assim permite integrar numa makefile ja existente.
Vou ter que investigar um pouco sobre esta vcglib...
terça-feira, 16 de novembro de 2010
Ponto de Situação da semana
Nesta semana consegui finalmente resolver um problema que surgiu no uso do VTK na interacção com o IPC e o player dos logs. O player bloqueava assim que o módulo vtk era inicializado mas a definição de um timer resolveu o problema, permitindo avançar nesta parte do trabalho.
Agora é possível:
-Visualizar os pontos dos diferentes lasers por cores.
-Navegar no modelo (zoom, rodar,etc)
-Inserir / remover um laser do modelo
-Exportar para um ficheiro .obj o modelo visualizado
-Activar / desactivar a acumulação de pontos de mensagens recebidas (ainda com um pequeno bug)
Agora é possível:
-Visualizar os pontos dos diferentes lasers por cores.
-Navegar no modelo (zoom, rodar,etc)
-Inserir / remover um laser do modelo
-Exportar para um ficheiro .obj o modelo visualizado
-Activar / desactivar a acumulação de pontos de mensagens recebidas (ainda com um pequeno bug)
Subscrever:
Mensagens (Atom)





