camera-calibration - 将任意 3D 点投影到图像平面中的一个点给出任意结果
问题描述
我在两个相机之间进行了立体校准,并在 opencv 上使用 stereoCalibrate 计算了内部和外部参数。
之后,我使用 stereoRectify 函数计算了两个相机的投影矩阵。
为了验证结果,我选择任意 X 和 Y 值来表示齐次坐标,例如 [[X]、[Y]、[1]、[1]],将 Z 和 W 固定为 1。
让我们假设
P = [[5], [10], [1], [1]]
Projection Matrix for Camera 1 P1 = Matrix [3x4]
Projection Matrix for Camera 2 P2 = Matrix [3x4]
乘法过程的结果应该是图像平面中的 2D 点。
p1 = np.matmult(P1, X)
p2 = np.matmult(P2, X)
有时 p1 和 p2 值都位于图像平面中并且它们都反映了相同的位置,有时两个值都位于图像平面内但反映了不同的位置!
我的问题是如何选择 3D 点并确保它提供正确的 2D 点。我正在做一个项目,用户在相机 1 中选择任意 2D 点,我的代码应该识别相机 2 中的正确位置。
问候,
解决方案
推荐阅读
- assembly - 汇编程序计数和不正确
- xcos - 为什么这个电路在 xcos 中会出错?
- wordpress - ninjaforms 电子邮件和操作选项卡不起作用
- java - 返回一个节点,其自身及其子节点在整个树中的总和最大,但即使当前总和较小,也会更新最大总和
- node.js - 为什么我得到一个 req.app.locals.something 未定义?
- javascript - 我怎样才能让我的标题背景在滚动时变成白色?
- java - Apache Syncope 找不到指定的路径文件错误
- apache-nifi - 有没有办法禁用 NiFi 中的所有存储库(例如 FlowFile Repo、Content Repo 等)?
- numpy - 在 for 循环中数组大小的 Numpy 问题
- javascript - 如何修复此算法以在 AST 中创建嵌套部分