我有一个使用 7 参数相机模型投射点的功能:
Vec2 project(const Rot3& R, // camera orientation
const Vec3& T, // camera pos
double f_px, // focal length
const Vec3& X) // point in world;
{
const Vec3 P = R * (X-T); // Subtract camera position and apply rotation
const Vec2 p = P.hnormalized() * f_px; // Normalize and apply focal length
return p;
}
- Rot3 是旋转的一些方便表示。假设它是一个 3x3 矩阵。
- Vec3::hnormalized()返回 Vec2(x/z, y/z)
现在我想扩展该函数以对我正在投影的点进行不确定性估计(3x3 协方差矩阵 - 世界坐标中的椭圆体)并返回 2x2 协方差矩阵(像素坐标中的椭圆)。
我认为这里引用了 Hartley & Zisserman在计算机视觉中的多视图几何 ,但我无法弄清楚它的数学原理。