Uwaga: To zależy od współrzędnych używanych w obrazie o zmienionym rozmiarze. Zakładam, że używasz układu zerowego (jak C
, w przeciwieństwie do Matlab
), a 0 jest przekształcane na 0. Ponadto, zakładam, że nie masz skosu między współrzędnymi. Jeśli masz przekrzywienie, należy je również pomnożyć
Krótka odpowiedź : Zakładając, że używasz układu współrzędnych, w którym , tak, powinieneś pomnożyć przez 0,5u′= u2), v′= v2)zax, ay, u0, v0
Szczegółowa odpowiedź Funkcja, która przekształca punkt we współrzędnych świata na współrzędne kamery to:P.( x , y, z, 1 ) - > ( u , v , S)
⎛⎝⎜zax000zay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330T.xT.yT.z1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Gdzie , ponieważ współrzędne są jednorodne.( u , v , S) - > ( u / S, v / S, 1 )
W skrócie można to zapisać jako
gdzie jest iloczynem dwóch wspomnianych powyżej matryc, a jest i ' ty rząd macierzy . (Produkt jest produktem skalarnym).u = m1P.m3)P., v = m2)P.m3)P.
M.mjaM.
Można zmienić rozmiar obrazu:
u′= u / 2 , v′=v/2
A zatem
u′=(1/2)M1PM3Pv′=(1/2)M2PM3P
Konwersja z powrotem do postaci macierzowej daje nam:
⎛⎝⎜0.50000.50001⎞⎠⎟⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Co jest równe
⎛⎝⎜0.5ax0000.5ay00.5u00.5v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Aby uzyskać dodatkowe informacje, patrz Forsyth , rozdział 3 - Kalibracja kamery geometrycznej.
Andrey wspomniał, że jego rozwiązanie zakłada, że 0 jest przekształcone na 0. Jeśli używasz współrzędnych pikseli, prawdopodobnie nie jest to prawdą po zmianie rozmiaru obrazu. Jedynym założeniem, które naprawdę musisz przyjąć, jest to, że transformacja obrazu może być reprezentowana przez matrycę 3x3 (jak pokazał Andrey). Aby zaktualizować matrycę kamery, możesz po prostu przedwcześnie zastosować macierz reprezentującą transformację obrazu.
Na przykład powiedz, że musisz zmienić rozdzielczość obrazu o współczynnik i używasz 0 indeksowanych współrzędnych pikseli. Twoje współrzędne są przekształcane przez relacje2)n
może to być reprezentowane przez macierz
więc twoja ostatnia matryca kamery będzie
źródło