Gabriel Tavares Malizia Alves
Trabalhos para a matéria INF 2064 (Realidade Aumentada e Cooperativa)
|
Trabalho 1 - Conhecendo o Equipamento Este primeiro trabalho consistiu em tentar levantar parâmetros da câmera utilizada durante todo este curso.
Trabalho 2 - Melhorando a Imagem Capturada Trabalho consistiu em fazer correção radiométrica e correção da distorção radial nas imagens capturadas pela câmera, utilizando como ponto de partida os parâmetros calculados no primeiro trabalho. Também está disponível um pequeno aplicativo que aplica correção radiométrica e radial com interpolação (e sem interpolação também) na imagem capturada pela câmera utilizada no trabalho. Para ativar e desativar a interpolação pressione a tecla c.
Observe que todo o cálculo de correção é feita em pré-processamento.
Trabalho 3 - Achando Linhas do Modelo com Transformada de Hough A idéia inicial deste trabalho era, utilizando a transformada de Hough, achar as linhas do padrão e com estas linhas achar os oitos pontos para a calibração da câmera.
Apesar da aplicação conseguir detectar as oito linhas do padrão, a transformada de Hough apresenta várias limitações que tornam a sua utilização para este tipo de aplicação desaconselhável. Por exemplo, o usuário não pode afastar muito a câmera do padrão, pois a transformada tem problemas de escalabilidade. Também não pode haver outros elementos além do padrão na imagem. Para este tipo de problema melhor usar a abordagem utilizada por outros alunos (olhar o trabalho do Rodrigo Espinha). O código da aplicação não está amigável, melhor utilizar a aplicação seguinte. A transformada de Hough utiliza uma lista para verificar entre os vizinhos para saber qual ponto é maior localmente na imagem da transformada. Hough funciona melhor com Canny, pois as linhas são mais finas. Há também uma implementação de Canny, porém sem threshold em histerese. a aplicação final do jogo da velha possui um código melhor de Canny. Comandos da aplicação: Para entender o código da transformada de Hough melhor utilizar esta outra aplicação auxiliar implementada. Ela possui alguns melhoramentos em relação ao trabalho 3. A transformada de Hough é feita procurando pontos de máximo local dentro de uma certa vizinhança. A aplicação recebe com entrada uma imagem e devolve quatro imagens: a primeira imagem possui a transformada de Hough, a segunda imagem é a primeria imagem eliminando os pontos maiores que o threshold, porém que são menores que um ponto dentro da vizinhança. A terceira imagem são os pontos de máximo local e a quarta imagem é a imagem original com as linhas encontradas desenhadas.
A função da transformada de Hough recebe, entre outros parâmetros, um threshold e um limite de vizinhança. Este limite de vizinhança quer dizer que um ponto de máximo achado na imagem da transformada de Hough é maior que todos os seus vizinhos dentro de uma distância, igual ao limite, para todos os quatros lados. Algumas imagens de exemplo foram incluídas. Utilize imagens que já foram processadas com Sobel ou Canny (ou seja, que já tiveram as arestas detectadas).
Trabalho 4 - Jogo da Velha Colaborativo Este jogo da velha permite ao usuário jogar jogo da velha contra o computador através do modelo especial em que o usuário pode desenhar e apagar dentro dele.
A aplicação utiliza o modelo para fazer a calibração de câmera, deixando a câmera em um ponto fixo. As bordas são detectadas utilizando um algoritmo que descobre componentes conexas na imagem resultantes do Canny. Este algorito considera apenas componentes maiores que um certo número de pixels por componente. Também sabe a direção da normal de cada pixel. A idéia original era utilizar o número de pixels em cada direção para determinar se a componente era uma das duas componentes fechadas ou não. Porém não deu certo. Então a aplicação está pegando as duas primeiras componentes maiores que o threshold como as duas componentes conexas e fechadas do padrão. Como o padrão é grande para a pessoa poder jogar, este não é um problema. A aplicação também guarda o número de pixels que cada componente possui. Após a calibração, o usuário está livre para jogar. O usuário desenha a tralha do jogo em cima do modelo para começar o jogo. A aplicação reconhece a tralha utilizando a transformada de Hough. Ao achar as quatro linhas, ela pega os quatro pontos de interseção e leva da imagem para o espaço da câmera no plano z=0. Então calcula os pontos sobre os quais o usuário tem que jogar e leva devolta para coordenadas da tela. Quando percebe que uma região para jogar está escura, assume que o usuário jogou ali. Para detectar se o usuário está com a mão em cima do modelo, verifica se o número de pixels das componentes do modelo mudou. Se o número pixels nas componentes mudaram, o usuário está com a mão na frente. Ao final do jogo, o usuário deve limpar todo o modelo para começar novamente. Isto é feito verificando se não há nenhuma linha de Hough dentro do modelo. O código fonte está disponível abaixo. |