OpenCV-Stereo:如何检查 3D 点 (x,y,z) 的有效性?

OpenCV-Stereo: How to check the validity of a 3D point (x,y,z)?

在 OpenCV 立体中,如何检查给定的 3D 点 (x,y,z) 是否可以投影到 left/right 图像平面上?我已经校准了通过stereoRectify获得的相机参数。

更具体地说,我想将 projectPoints 与 "valid" 3D 点一起使用。我想从原始 3D 点集中删除无效点。

谢谢!


已编辑@2016-05-06

关于 "validity":我发现当我给出一些绝对位于图像外部区域的 3D 点时,projectPoints 返回了非常奇怪的值。例如,在 3D 中定义的大锥面上的点没有像我预期的那样正确转换为图像上的点。

我的解决方案是避免使用 projectPoints。由于 projectPoints 函数涉及从 3D 到 2D 的投影并考虑相机参数,因此它有点复杂。我没有使用 projectPoints,而是仅使用 stereoRectify 获得的投影矩阵将 3D 点 投影到校正图像 上。