给定的2张图像从同一位置和FOV拍摄,只有方向更改(偏航,俯仰,滚动),如何使用使用a用匹配的像素来计算图像的FOV功能匹配算法?
鉴于每个图像中的一组像素集应uncrove(由逆模型观看预测矩阵转换为同一单位向量),我假设我可以在透视图投影矩阵和f求解F中为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
有多种通过已知旋转进行自我校准的方法。
我已经使用了Hartley:http://users.cecs.anu.edu.au/~hartley/papers/calibration/calibration/eccv94/ccv94/calib.pdf
另请参阅此内容:http://citeseerx.ist.ist.ppsu.edu/viewdoc/download?doi=10.1.1.1.1.1.1.128.5281& rep; rep; rep; rep; rep; amp; amp; amp; type = pdf