2014-01-24 266 views
0

給定從相同位置和FOV獲取的2幅圖像以及只有方向改變(偏航,俯仰,滾轉),如何使用特徵匹配算法使用匹配像素計算圖像的FOV ?根據匹配像素計算FOV

假設每個圖像中的一組匹配的像素應該被反投影(由逆模型 - 視圖 - 投影矩陣變換的像素位置)到相同的單位矢量,我假設我可以在透視投影矩陣中求解F並從那裏計算出FOV。

注意:相機的位置和方向角是已知的。

求解透視投影矩陣有我解決F這裏VecA/| VecA | = VecB/| VecB |。我不確定如何解決這個問題,因爲這些向量在歸一化時需要相同。在VECA和VecB矢量分量分解爲以下:

mv = inverse Model-View matrix for image 
width = width of image in pixels 
height = height of image in pixels 
px = pixel location of matching feature 
F = tan(FOV/2) 

Vec.X = (mv.m11 * F * px.x) + (mv.m12 * F * height/width * px.y) - mv.m13 
Vec.Y = (mv.m21 * F * px.x) + (mv.m22 * F * height/width * px.y) - mv.m23 
Vec.Z = (mv.m31 * F * px.x) + (mv.m32 * F * height/width * px.y) - mv.m33 

實施例的數據:

width = 704 
height = 480 
pxA = 0.28409090909090917, -0.16666666666666663 
pxB = 0.0, 0.0 
mvA = -0.6560590289905072, -0.0902630302223078, -0.7492924234603735, 
     -0.7547095802227721, 0.0784644550873574, 0.6513499664602825, 
     0.0,     0.9928221969028145, -0.11959968786359426 
mvB = -0.7116393973440803, -0.06257611232965804, -0.6997525264787975, 
     -0.7025449225122575, 0.06338616284802252, 0.7088108536215074, 
     0.0,     0.9960253131949559, -0.08907062071687842 

    F = 0.2679491924311227 
VecA = 0.7021003426128247, -0.7111890623383523, 0.08936947128543493 
VecB = 0.6997525264787975, -0.7088108536215074, 0.08907062071687842 
|VecA|= 1.0033552092278133 
|VecB|= 1.0 

回答