Câmeras e extensão de entrada
Este artigo apresenta o modelo de câmera, parâmetros e alguns outros pontos de atenção para uso de câmeras físicas, bem como a extensão de entrada por meio de câmeras personalizadas.

Quadro de entrada
O quadro de entrada (Input Frame) é a unidade básica de dados em AR, representando todas as informações relevantes capturadas de uma câmera ou outra fonte de dados em um único quadro. Um quadro de entrada geralmente contém:
- Dados de imagem bruta (camera image)
- Parâmetros da câmera (como parâmetros intrínsecos)
- Carimbo de data/hora (timestamp)
- Matriz de transformação da câmera nas coordenadas do mundo
- Estado de rastreamento (tracking status)
Essas informações fornecem o contexto espaço-temporal necessário para os algoritmos de AR realizarem localização, rastreamento, renderização, etc.
Câmera física
As câmeras usadas atualmente em dispositivos eletrônicos geralmente consistem em múltiplas lentes e espelhos. No entanto, geralmente não se usa a estrutura óptica real para construir o modelo da câmera, mas sim modelos simplificados.
Modelo de câmera estenopeica (pinhole)

Este é o modelo mais simples normalmente usado, onde a luz passa por um pequeno orifício e forma uma imagem rotacionada em 180 graus. Porém, os dados de saída da câmera invertem a imagem para sua orientação correta. Seis parâmetros descrevem este modelo: largura e altura dos pixels \(w, h\), distância focal em pixels \(f_x, f_y\), e posição do ponto principal em pixels \(c_x, c_y\). Note que se a largura e altura dos pixels forem dimensionadas, a distância focal em pixels e a posição do ponto principal também escalam proporcionalmente, mantendo a posição da imagem inalterada.
Modelo de câmera OpenCV
Algumas câmeras apresentam distorção radial e tangencial significativas. O modelo de câmera OpenCV adiciona parâmetros de alta ordem ao modelo estenopeico para descrever essas distorções. A distorção radial é descrita usando \(k_1, k_2, k_3, \cdots\). A distorção tangencial é descrita usando \(p_1, p_2\).
Nota
Alguns rastreadores não suportam o modelo de câmera OpenCV.
Modelo de câmera fisheye OpenCV
Câmeras fisheye comprimem conteúdo de grande campo de visão em uma área de imagem menor usando projeção perspectiva. O modelo de câmera fisheye OpenCV não possui correção de distorção e usa \(k_1, k_2, k_3, k_4, \cdots\) para descrever a distorção, além dos 6 parâmetros do modelo estenopeico.
Nota
Alguns rastreadores não suportam o modelo de câmera fisheye OpenCV.

Orientação da câmera e orientação da imagem
Em telefones, quando segurados horizontalmente (girados 90 graus no sentido anti-horário a partir da posição vertical normal) e com a tela também em orientação horizontal, a imagem da câmera traseira exibida na tela corresponde à cena real. Alterar apenas a orientação de exibição da tela, sem mudar sua orientação física, não altera a orientação da imagem de saída da câmera física. Quando segurados na posição vertical normal e com a tela também em orientação vertical, a imagem da câmera traseira precisa ser girada 90 graus no sentido horário antes de ser exibida na tela para corresponder à cena real. Quando a orientação de exibição da tela gira, a imagem da câmera renderizada precisa de uma compensação de rotação inversa para corresponder à cena real.
A orientação da câmera e da imagem são geralmente definidas em relação à orientação natural do dispositivo:
Telefone
- Android O Android define uma orientação natural, que é a posição vertical normal de segurar o telefone. A unidade de sensor inercial (IMU) também usa essa direção como referência. O ângulo de rotação da imagem de saída da câmera em relação a essa direção pode ser obtido como um parâmetro da câmera.
- iOS No iOS, embora não explicitamente definida, a unidade de sensor inercial também usa o mesmo referencial do Android.
Tablet A orientação natural de um tablet pode ser a posição horizontal ou, como nos telefones, a posição vertical normal.
Óculos A orientação natural dos óculos geralmente é a posição horizontal.
Ao renderizar a imagem da câmera, a orientação da câmera e a orientação da tela são consideradas em conjunto.
Tipo de câmera e inversão da imagem
Telefones geralmente têm câmeras traseiras e frontais. A imagem da câmera frontal precisa ser invertida horizontalmente (espelhada) antes de ser exibida na tela para simular um espelho. Sem essa inversão, a aparência parece pouco natural.
Extensão de entrada
O EasyAR suporta extensão de entrada usando câmeras personalizadas. Uma câmera personalizada permite obter quadros de entrada de fontes externas e transmiti-los para o sistema AR, para uso pelos rastreadores. Você pode implementar a obtenção dos dados de imagem para a câmera personalizada.
Guias específicos de plataforma
O uso de câmeras e extensão de entrada está intimamente relacionado à plataforma. Consulte os guias abaixo para desenvolvimento, de acordo com sua plataforma-alvo: