Standart bir lens varsayarsak, standart kamera, yani kurulum iğne deliği kamera olarak modellenebilir . Bu eğim / kaydırma ile çalışmaz ve belki de geniş açılı lenslerle çalışmaz (bunları bilmek isterseniz, çalışabiliriz).
Bilgisayar görüşünde, genellikle kameraların içsel özellikleri hesaplanır. İçseldir çünkü kamera içindeki kameranın ayarlarına atıfta bulunurlar. Dışsal özellikler yönelim ve konumdur. İçsel özellikler, aralarında büyütme vardır. Benim çözümüm:
- Kamerayı ve merceği verilen ayarlarda kalibre etmek için Computer Vision (CV) standart bir araç kullanın .
- Kameranız için piksel boyutuna bakın.
- Bir başkasından büyütmeyi odak uzunluğuna dönüştürmesini isteyin. (Bunun nasıl çalıştığını henüz bilmiyorum)
ayarlama
CV'de kalibrasyon çoğunlukla bir satranç tahtası paterni kullanılarak yapılır. Bu konumun çeşitli konumlardan ve mesafelerden birkaç (~ 10) fotoğrafı çekilir. Algoritma şu şekilde çalışır:
Her köşenin tahtadaki konumunu bildiğinizi varsayalım, kamera modelinde görüntülerdeki tahtadaki tüm noktaları görmeyi en iyi açıklayan bir dizi parametre bulun.
Teorik olarak bunun için OpenCV'yi tavsiye ederim, bunun için bir örnek kod var. Ancak bu çok pratik olmayabilir (bunun için OpenCV'yi yüklemeniz ve muhtemelen biraz kod değiştirmeniz gerekir.). Muhtemelen bunu yapan başka çözümler de var.
Odak uzaklığının hesaplanması
Kalibrasyon adımının sonucu K matrisidir (içsel matris olarak adlandırılır). Kameranın koordinat sistemindeki 3 boşluk noktalarını görüntü düzlemindeki homojen 2 boşluk noktalarıyla eşler.
$ \alpha 0 p_x
K = 0 \alpha p_y
0 0 1 $ (Multiple View Geometry, p. 157, 2nd Ed, 2003, Hartley & Zisserman)
Burada sadece \ alfa ile ilgileniyoruz. p_x, piksel cinsinden sensör genişliğinin yaklaşık yarısıdır, p_y için olduğu gibi, ana ışının görüntü düzlemiyle kesiştiği yer ile ilgilidir. İlginç bir şekilde, ucuz telefon kameram, iyi bir DSLR, hatta pahalı bir web kamerası veya bir Iphone 4 kameradan çok daha fazlasını ihlal ediyor.
\ alpha daha sonra odak uzunluğuyla ilişkilendirilir. \ alpha = f m. m, görüntü koordinatlarındaki birim mesafe başına piksel sayısıdır. f odak uzaklığıdır. Ancak not: bu iğne deliği kamera modelindedir, bu nedenle görüntü düzlemi ve kameranın iğne deliği arasındaki mesafe. Fotoğrafçıların düşündüğü odak uzaklığını nasıl bulacağından emin değilim.
Alternatif
Birisi farklı bir yaklaşımla ilgili bir bağlantı yayınladı: http://www.bobatkins.com/photography/technical/measuring_focal_length.html
Makalede "Kolay Yol" da farklı bir yöntem önerildi. İki yıldız verildiğinde, yıldızların konumlarına bakın ve aralarındaki açıyı hesaplayın. Ardından kamera kurulumunuzun bu açıyı nasıl ölçtüğünü görün. Tam bir geçiş için bağlantıyı okuyun.
Bunun dezavantajı, herhangi bir odak mesafesi ile çalışmaz, sadece sonsuza odaklanır. Öte yandan, yaklaşımım sonsuzda işe yaramayacak. Veya 500m'yi sonsuzluk olarak ele alın, bir mısır tarlası satın alın ve içine bir satranç tahtası deseni biçin, uçak kiralayın ve 500m'den fotoğraf çekin ...