|
O objetivo deste trabalho foi realizar a calibração de uma câmera a partir de um padrão conhecido na cena capturada e inserir elementos virtuais nela de forma que o espectador tenha a impressão que tais elementos pertenciam a cena capturada.
|
O padrão utilizado foi um tabuleiro de xadrez. A partir de um stream de vídeo de entrada (vindo de um arquivo ou de uma webcam), o padrão é localizado na imagem.
|
|
Conhecido o padrão e localizado na imagem pode-se calibrar os parâmetros intrínsecos e extrínsecos da câmera. E para tal utilizou-se o método de Tsai2D de calibração de câmeras.
|
Entretanto, dependendo de onde o elemento virtual é inserido percebe-se que ele não pertence a cena, como na imagem 5.
|
Para corrigir tal erro é necessário conhecer o cenário e inserir seus elementos no z-buffer (somente inserir no z-buffer, sem pinta-los na imagem). Assim quando o elemento virtual for pintado na imagem somente a parte pertinente será exibida.
|
|
O resultado pode ser observado na gif abaixo =]
|
Arquivos: O cenário foi construido por minha pessoa com papel cartão amarelo, azul e verde (video01, video02 e coordenadas da cena). A cena possui um padrão xadrez e mais dois padrões para o ArToolKit (padrão01 e padrão02).
|
Incremento 1 : O objetivo é a obtenção das coordenadas do cenário apartir da imagem capturada. E utilização destas coordenadas para inserir estes elementos da cena no z-buffer.
|
Para tal fez-se primeiramente uma detecção de bordas com o algoritmo de Canny.
|
Depois utilizou-se o detector de retas de Hough.
|
Porém os resultados de detecção de retas não foi satisfatório. Os próximos passos seriam montar uma arvore de descisão para comparar as retas encontradas com as retas do modelo a ser localizado na imagem. |
Incremento 2: O objetivo é a integração com uma ENGINE 3D. A engine escolhida foi a SpaceSimulator.
|
Resultado da integração, o código pode ser baixado aqui.
|
|
|---|