2015-07-07 10 views

Odpowiedz

6

Fizyczne wielkości procentowe to rozmiar czujnika i długość ogniskowej. Ten ostatni, w modelu kamery otworkowej, jest odległością pomiędzy środkiem kamery a płaszczyzną obrazu. Dlatego, jeśli oznaczymy za pomocą ogniskowej (w mm), odpowiednio W i H, szerokość i wysokość przetwornika obrazu (w mm), i zakładamy, że oś ogniskowa jest ortogonalna do płaszczyzny obrazu, przez zwykłą trygonometrię wynosi:

FOV_Horizontal = 2 * atan(W/2/f) = 2 * atan2(W/2, f) radians 
FOV_Vertical = 2 * atan(H/2/f) = 2 * atan2(H/2, f) radians 
FOV_Diagonal = 2 * atan2(sqrt(W^2 + H^2)/2, f) radians 

Pamiętaj, że jeśli masz rozmiar czujnika i poziomy lub pionowy fov, możesz rozwiązać jedno z dwóch pierwszych równań dla f i podłączyć je do trzeciego, aby uzyskać przekątną fov.

Kiedy, jak zwykle, długość ogniskowej jest szacowana za pomocą kalibracji kamery i wyrażana jest w pikselach, powyższe wyrażenia wymagają pewnych adaptacji.

Oznacza K z matrycą aparatu 3x3, z ramą kamery mającą początek w środku kamery (punkt ogniskowania), oś X zorientowana od lewej do prawej, oś Y od góry do dołu i oś Z w kierunku sceny . Niech Wp i Hp będą odpowiednio wysokością i wysokością obrazu w pikselach.

  1. W najprostszym przypadku osi ogniskowej jest prostopadła do płaszczyzny obrazu (K12 = 0), piksele są kwadratowe (K11 = K22) oraz główny punkt znajduje się w środku obrazu (K13 = WP/2; K23 = Hp/2). Następnie stosuje się te same równania jak wyżej, zastępując W z Wp, H z Hp i f z K11.

  2. O wiele bardziej skomplikowany jest przypadek jak wyżej, ale z głównym punktem poza centrum. Następnie dodaje się po prostu dwie strony każdego kąta widzenia FOV. Tak więc, na przykład:

    FOV_Horizontal = ATAN2 (WP/2 - K13, K11) + atan2 (WP/2 + K13, K11)

  3. Jeśli piksele nie są kwadratowe te same wyrażenia ubiegać FOV_vertical, ale za pomocą K22 i Hp itp. Przekątna jest odrobinę trudniejsza, ponieważ trzeba "przekonwertować" wysokość obrazu na te same jednostki co szerokość. Za pomocą "piksela obrazu stosunek" PAR = K22/K11 do tego celu, tak że:

    FOV_Diagonal = 2 * atan2 (sqrt (Wp^2 + (HP/PAR)^2)/2, K11)

Powiązane problemy