T1 - Programa para encontrar intereseção de linhas de um modelo em imagens de vídeo

Atenção: Estas páginas serão constantemente atualizadas durante o curso. Última atualização: 08/22/2005


O programa fornecido no link tem quatro módulos: arInterface.c (trata da interface IUP/IM/OpenGL), arProcess.c (que voce deve implementar), jv.c (módulo extraído do programa JuizVirtual que tem um conjunto de funções para achar as linhas de uma imagem) e IconLib.c (que contém a definição de alguns botões da IUP que voce nao deve se preocupar).

O programa tem a interface mostrada na figura abaixo.

Interface do programa fornecido

A primeira parte deste trabalho consiste em implementar o módulo arProcess.c de forma a desenhar uma marca que acompanhe os vértices do padrão visto pela câmera. Para isto voce deve mudar as implementações das funções do arProcess.c que são chamadas pela interface:

void userOpen(int width, int height, char* model_file_name);
void userProcessLeft(int width, int height, unsigned char* inFrame, int* flags, float* values,
                                                                        unsigned char* outFrame);
void userProcessRight(int width, int height, unsigned char* inFrame, int* flags, float* values,
                                                                        unsigned char* outFrame);
void userDrawLeft(int width, int height);
void userDrawRight(int width, int height);
void userClose( );
 

As funções userOpen e userClose são utilizadas para alocar e desalocar memória como está exemplificado no arquivo fornecido.
Os parâmetros
width e
height são a largura e altura dos canvas (320x240, neste caso).  O string model_file_name contém o nome do arquivo que contém as coordenadas das linhas no papel de calibração "modelo.mdl" dado no arquivo zip fornecido.

As funções:  userProcessLeft e userProcessRight são utilizadas para processar cada quadro capturado pela câmera.  Os parâmetros:

As funções:  userDrawLeft e userDrawRight são chamadas logo após a colocação das imagens das câmeras nos canvas superiores.  Use estas funções para desenhar os vértices.