Do comentário de Matt Grum à minha pergunta anterior , aprendi que os fabricantes podem casualmente "arredondar" a distância focal real de uma lente para um número agradável que é impresso na caixa e armazenado em EXIF. Da resposta dele à mesma pergunta, parece que eu precisaria saber a distância focal real de uma lente para testar qual abertura é usada.
Também ouvi dizer que a maioria das lentes altera a distância focal quando focada muito perto.
Como eu testaria qual distância focal minha lente está realmente usando quando focada em uma determinada distância? EXIF obviamente não vai me ajudar aqui, porque os dados são colocados lá pelo fabricante.
focal-length
tests
Imre
fonte
fonte
Respostas:
Existe um método matemático / de medição para calcular a distância focal efetiva de uma lente medindo seu ângulo de visão.
A fórmula para o ângulo de visão é dada como
Para calcular a distância focal efetiva (f), a fórmula se resume a:
f = d / (2 * tan (α / 2)) -> Equação1
Onde d representa o tamanho do sensor na direção medida. d seria 24 caso você esteja usando uma câmera full frame.
Vamos agora ter a seguinte configuração para medir α
Você tem uma câmera a uma altura H do chão e a uma distância de X da parede com uma balança. Agora, tire uma foto e você poderá ler a altura máxima que a lente pode ver (isso seria H + Y).
Agora, conhecendo X e Y, podemos calcular metade do ângulo de visão (ou seja, α / 2) usando esse link (X seria o lado oposto e Y o lado adjacente)
Agora que você descobriu o α / 2, use-o na Equação1 para calcular a distância focal efetiva da lente.
O valor é preciso apenas como suas medidas.
Edit 1:
Em referência à pergunta de mattdm: As dimensões do sensor declaradas pelo fabricante estão próximas o suficiente?
Com referência aos tamanhos dos sensores das câmeras nesses links: aqui e aqui
Podemos logicamente supor que os fabricantes de câmeras ou pelo menos a Canon e a Nikon arredondem seus tamanhos de sensor 1/10 de mm. ou seja, existe a possibilidade de erro de +/- 0,05 mm, caso eles arredondem o tamanho do sensor.
Vamos considerar três tipos de lentes:
1. Lente grande angular (digamos 13 mm, ângulo de visão: 85.4)
2. Lente normal (50 mm, ângulo de visão 27.0)
3. Lente telefoto (300 mm, ângulo de visão: 4.58)
O efeito de uma alteração de 0,05 mm no tamanho do sensor é:
alteração para lente grande angular = 0,05 / (2 * tan (85,4 / 2)) = 0,04613 mm aprox.
O que representa uma diferença de 0,35% (ie (0,04613 / 13) * 100)
alterar para lente normal = 0,05 / (2 * castanho (27/2)) = 0,012 mm aprox.
O que representa uma diferença de 0,024% (ou seja, (0,012 / 50) * 100)
alterar para lente telefoto = 0,05 / (2 * tan (4,58 / 2)) = 0,0019 mm aprox.
O que representa uma diferença de 0,0006% (ou seja, (0,0019 / 300) * 100)
Assim, podemos ver que, com uma lente grande angular de 13 mm e com erro de 0,05 mm na medição dos fabricantes, a alteração na distância focal é de apenas 0,35%.
Espero que minha matemática esteja correta.
Edit 2:
Em referência à pergunta de Imre sobre medições para X e H,
H deve ser medido do solo até o centro horizontal do sensor.
X é a distância entre o sensor e a parede.
fonte
Supondo uma lente padrão, uma câmera padrão, ou seja, a configuração pode ser modelada como uma câmera de orifício . Isso não funciona com inclinação / deslocamento e talvez não com lentes grande angulares (se você quiser saber sobre elas, poderíamos resolver isso).
Na visão computacional, geralmente são calculadas as propriedades intrínsecas das câmeras. Intrínseco porque se refere às configurações da câmera dentro da câmera. Propriedades extrínsecas são orientação e posição. As propriedades intrínsecas são diversas, entre elas a ampliação. Minha solução é:
Calibração
A calibração no CV é feita principalmente usando um padrão de tabuleiro de xadrez. Você tira várias (~ 10) fotos desse padrão em várias posições e distâncias. O algoritmo funciona então da seguinte maneira:
Em teoria, eu recomendaria o OpenCV para isso, ele tem um código de exemplo para isso. Mas isso talvez não seja muito prático (você precisará instalar o OpenCV para isso e possivelmente alterar um pouco de código). Provavelmente existem outras soluções por aí que fazem isso.
Cálculo da distância focal
O resultado da etapa de calibração é a matriz K (denominada matriz intrínseca). Ele mapeia 3 pontos de espaço no sistema de coordenadas da câmera para pontos homogêneos de 2 espaços no plano da imagem.
Só nos preocupamos com \ alpha aqui. p_x tem cerca da metade da largura do sensor em pixels, da mesma forma que p_y, ele se refere a onde o raio principal cruza o plano da imagem. Curiosamente, minha câmera barata do telefone viola muito mais do que uma boa DSLR, ou mesmo uma webcam cara, ou uma câmera Iphone 4.
\ alpha é então relacionado à distância focal. \ alpha = f m. m é o número de pixels por unidade de distância nas coordenadas da imagem. f é a distância focal. Mas observe: esse é o modelo da câmera pinhole, portanto, a distância entre o plano da imagem e o orifício da câmera. Não sei como encontrar a distância focal que os fotógrafos pensam para isso.
Alternativo
Alguém postou um link sobre uma abordagem diferente: http://www.bobatkins.com/photography/technical/measuring_focal_length.html No artigo "The Easy Way" deste artigo, é proposto um método diferente. Dadas duas estrelas, procure as posições das estrelas e calcule o ângulo entre elas. Então veja como a configuração da sua câmera mede esse ângulo. Leia o link para obter uma explicação completa.
A desvantagem disso é que ele não funcionará com nenhuma distância focal, mas focará apenas no infinito. Por outro lado, minha abordagem não funcionará no infinito. Ou trate 500m como infinito, compre um campo de milho e corte um padrão de tabuleiro de xadrez, alugue um avião e tire fotos a partir de 500m ...
fonte
Calcule a ampliação M da lente usando o objeto e o tamanho da imagem. Com M e a distância do objeto, a distância focal da lente pode ser calculada.
fonte
Eu olhei para o "método fácil" de Bob Atkins, mas ele permite que você trabalhe com alguns dados adicionais.
Minha versão do método dele fornece todas as informações e links de instruções do astro, com instruções passo a passo, e deve ser significativamente mais fácil para os iniciantes implementarem.
http://www.pentaxforums.com/forums/pentax-lens-articles/169225-using-2-stars-determine-actual-focal-local-lens-distance.html
fonte
Você pode colocar a lente em um descanso como um livro, criando assim um banco óptico bruto. Bem, ilumine um alvo. Melhor é uma régua. Ajuste a lente para que a imagem da régua caia em uma tela de papel branco.
Brinque com as distâncias até que a imagem da régua seja "em tamanho real". Você sabe, 1: 1 também chamado de "ampliação um". Usando outra régua, meça a distância entre as marcações na imagem da regra projetada. O uso de duas réguas idênticas ajuda. Agora, estabeleça a ampliação 1: 1 necessária.
Agora meça a distância entre o alvo e a tela. Divida esse valor por 4. Essa resposta fornece a distância focal da lente.
fonte