|
Realidade
Aumentada Prof.: Aluno: Jeronimo Silvério Venetillo |
|
|
Observação: Todos os
programas abaixo requerem OpenGL e as bibliotecas GLUT e IUP. |
|
|
Trabalho 01
|
Detecção de padrão e
renderização de objeto virtual Descrição: O Programa deve reconhecer a
partir da imagem gerada de uma webcam um padrão pré-determinado e calcular a
posição da câmera no mundo. Com isso, podemos desenhar um objeto virtual
sobre uma cena real. Para o reconhecimento de
padrão foi usado a biblioteca de Flavio Szenberg, que depois de aplicar um
filtro LoG ( Laplaciano do Gaussiano ) na imagem invertida, usa um algoritmo
de detecção e reconhecimento das linhas do modelo. Após esse reconhecimento,
temos uma função de ajuste do reconhecimento que é feito a cada quadro da
aplicação. Para calcularmos a
posição da câmera, usamos o método de tsai 2D. Neste método o conjunto de
pontos e subdividido para que novos pontos sejam criados. O método de tsai
nos fornece uma matriz de projeção e outra de modelview que é usada no OpenGl
para visualizarmos um modelo virtual em 3D. |
|
|
|
|
Trabalho 02
|
Reconstrução da malha tridimensional de um
objeto com auxílio de duas câmeras e um projetor. Descrição: Com um cenário que envolve duas
câmeras e um projetor, tiramos duas fotos de alguns objetos que eram
iluminados por um projetor com algum tipo de padrão. Sem trocar as câmeras de
posição, tiramos fotos de um padrão para que pudéssemos identificar a posição
relativa das câmeras. Com isso podemos fazer a reconstrução tridimensional da
malha do objeto. O primeiro passo foi
encontrar a posição relativa das câmeras. Isso foi feito de uma maneira
semelhante ao do primeiro trabalho. Como não se trata de uma aplicação em
tempo real, identificamos as linhas do modelo manualmente para diminuir as
fontes de erros do processo. Além disso, tínhamos a informação da distancia
focal das câmeras usadas. Com essas informações dadas, usamos o mesmo método
proposto no primeiro trabalho para identificar a posição relativa das
câmeras. O segundo passo foi
identificar a transição de faixas projetadas nos objetos para ajudar na etapa
de reconstrução tridimensional da malha. Para diminuir o erro nesta parte do
processo, fizemos uma redução de cores da foto para as cores projetadas mais
o preto. Para achar a transição foi usado um esquema de slides positivos e
negativos, onde faixas positivas consecutivas tinham seus canais de cor mais
alto diferentes. Assim, uma transição de faixa se dava sempre que o canal
mais intenso da faixa positiva ficava com seu valor menor que seu
correspondente na negativa. Para identificação da transição usamos uma função
que decodificava os dois pares de transição num número. Com isso foi gerada
uma imagem que identificava quais pixels continham uma transição
(identificada no canal b) e um arquivo identificando quais pixels de cada
transição.
|
|
|
|