Este artigo é sobre como estimar a distância focal de uma câmara, quando a mesma não se encontra disponível nas especificações da câmara. Para se obter a distância focal de uma camera Podem ser utilizados dois métodos.
Um método, que não será abordado neste artigo, consiste na utilização de um padrão de xadrez com dimensões conhecidas e após tirar várias fotografias com diferentes orientações, efectuar cálculos para encontrar os parâmetros intrínsecos da camera (distancia focal, centro e coeficientes de distorção das lentes).
O outro método de obter a uma estimativa aproximada da distância focal é o que vamos abordar aqui.
A distância focal é usada em vários processos de calculo relacionadas com imagens fotográficas, como por exemplo calculo de distancias.
Traduções
- Distância Focal = Focal Length,
- Campo de Visão = Field of View
- Plano da imagem = image Plane (largura da imagem)
Com base na imagem abaixo, podemos deduzir as relações entre o campo de visão (alpha), a distância a focal (f) e o plano da imagem (w).
No caso das cameras de video, as unidades do plano de imagem são em pixels, pelo que no final a distancia focal calculada também é expressa em pixels.
Grosso modo, considerando que o triângulo formado pelo centro da lente e os dois extremos do plano da imagem (w), pode ser dividido em dois rectângulos equivalentes, e seja (beta) o ângulo entre o cateto adjacente e a hipotenusa, então (alpha) = 2 x (beta).
Sabendo que a tg(beta) é igual ao cateto oposto (w/2) a dividir pelo cateto adjacente (f) então:
tg(beta) = (w/2)/f que é equivalente a tg(beta) = w/(2f), daqui decorre que
(beta) = arctg(w/(2f)), considerando que (alpha) = 2 (beta) então:
Com esta equação sabendo a distancia focal e a largura do plano de imagem conhecemos o ângulo do campo de visão horizontal (HFOV).
Esta equação pode ser reproduzida para a altura do plano de imagem (h) e assim saber o ângulo do campo de visão vertical (VFOV).
Resolvendo em ordem à distancia focal (f) temos:
seja (alpha) = a
a = 2 arctg (w/(2f))
a /2 = arctg(w/(2f))
tg(a/2) = w/(2f)
f = w/(2 tg(a/2))
Sabendo que a cotangente é o inverso da tangente, chegaremos a equação:
Ou seja, com a equação acima sabendo a largura da imagem (w) em pixels e o ângulo do campo de visão (alpha) podemos obter a distancia focal (f) em pixels.
Saber a largura, ou a altura da imagem é fácil, no entanto, é necessário saber o ângulo do campo de visão horizontal (HFOV), e este nem sempre é informado nas especificações das cameras.
Muitas vezes as especificações de informam o campo de visão diagonal (DFOV) da câmara.
Neste caso, como a diagonal do plano da imagem (linha a tracejado) (d), é a hipotenusa do triângulo rectângulo, com a largura (w) e altura (h) da imagem como catetos, logo pela aplicação do teorema de Pitágoras,
d = sqrt(w² + h²)
Podemos fazer uma aproximação com a seguinte equação, onde simplesmente se substituiu w por d:
Se pretendermos calcular o HFOV e o VFOV a partir do DFOV então teremos que aplicar estas equações extra:
Método prático de estimar a distância focal
Existe uma forma mais fácil e prática de estimar a distância focal. Este método implica tirar uma foto a um objecto de largura (W) ou altura (H) conhecida, e tirar-lhe uma fotografia a uma distancia conhecida (D).
Sabendo a sua largura, ou altura, em pixels (P)
Para estimar a distância focal de uma câmara (F), pode-se então usar a seguinte equação:
Se usar a altura H, deve-se trocar o W por H na equação acima.
Exemplos de aplicação
Exemplo 1: a camera Microsoft lifecam vx-800, cujas especificações apenas indicam o DFOV de 59º
Nesta camera, para uma imagem com 640 x 480, temos uma diagonal
d = 783.
Aplicando a ultima equação, temos:
f = (783/2) cotg(59º/2) = 392 * 1.7675 = 693
Distância focal = 693 pixels
Exemplo 2: a camera Logitech HD webcam C525, cujas especificações apenas indicam o DFOV de 69º
Nesta camera, para uma imagem com 640 x 480, temos uma diagonal
d = 783.
Aplicando a ultima equação, temos:
f = (783/2) cotg(69º/2) = 392 * 1.455 = 570
Distância focal = 570 pixels
Referencias
https://medium.com/@arnaldog12/como-calcular-a-dist%C3%A2ncia-de-um-objeto-pra-c%C3%A2mera-ef1173171f0
http://www.therandomlab.com/2013/03/logitech-c920-and-c910-fields-of-view.html
https://en.wikipedia.org/wiki/Pinhole_camera_model