Not: Bu, yeniden boyutlandırılan görüntüde hangi koordinatları kullandığınıza bağlıdır. Sıfır tabanlı sistem kullandığınızı varsayıyorum (örneğin C
, aksine Matlab
) ve 0, 0'a dönüştürülür. Ayrıca, koordinatlar arasında eğim olmadığını varsayıyorum. Eğer bir eğriliğiniz varsa, çarpım da olmalı
Kısa cevap : u ′ = u olan bir koordinat sistemi kullandığınızı varsayarsaku′=u2,v′=v2 , evet,ax,ay,u0,v0değerini 0.5 ile çarpmalısınız.
Ayrıntılı cevap Dünya koordinatlarındaki bir P noktasını kamera koordinatlarına (x,y,z,1)−>(u,v,S) fonksiyon:
⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Nerede (u,v,S)−>(u/S,v/S,1) , çünkü koordinatlar homojendir.
Kısacası bu u = m 1 P şeklinde yazılabilir
u=m1Pm3P,v=m2Pm3P Miki matrislerin ürünü olan, yukarıda sözü edilen vemImatris i'inci satırdırM. (Ürün skaler üründür).
MmiM
Görüntünün yeniden boyutlandırılması şu şekilde düşünülebilir:
u′=u/2,v′=v/2
Böylece
u′=(1/2)M1PM3Pv′=(1/2)M2PM3P
Matris formuna geri dönelim bize şunu verir:
⎛⎝⎜0.50000.50001⎞⎠⎟⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Which is equal to
⎛⎝⎜0.5ax0000.5ay00.5u00.5v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
For additional information, refer to Forsyth, chapter 3 - Geometric camera calibration.