我在旧版本的MathCAD中解决了它:
![alt text](https://istack.dev59.com/Xt0fW.webp)
编辑:MathCAD截图中的措辞错误:“已知:g和b相互垂直”
在MathCAD中,我忘记了执行叉积的最后一步,我将从早期答案中复制并粘贴它在这里:
Now we've solved for the X-Y-Z of the
translated g and b points, your
original question wanted the normal of
the plane.
If cross g x b, we'll get the
vector normal to both:
| u1 u2 u3 |
g x b = | g1 g2 g3 |
| b1 b2 b3 |
= (g2b3 - b2g3)u1 + (b1g3 - b3g1)u2 + (g1b2 - b1g2)u3
All the values are known, plug them in
(i won't write out the version with g3
and b3 substituted in, since it's just
too long and ugly to be helpful.
但实际上,我认为您需要通过数值方法来解决它,调整gz和bz以最好地适应以下条件:
g · b = 0
和
|g| = |b|
因为像素并不是代数上完美的。
示例
使用阿波罗13号宇航员在LEM中调整指令模块的方形氢氧化锂罐之一的图片,我找到了角落:
![alt text](https://istack.dev59.com/dtHHP.webp)
使用它们作为我的X-Y平面基础:
![alt text](https://istack.dev59.com/s3mHo.webp)
我用Photoshop记录了像素位置,其中正X指向右侧,正Y指向下方(保持Z的右手定则“进入”图片):
g = (79.5,-48.5,gz)
b = (-110.8,-62.8,bz)
将这两个起始公式输入Excel,并使用分析工具包通过调整
gz和
bz来“最小化”误差,得出了两个Z值:
g = (79.5,-48.5,102.5)
b = (-110.8,-62.8,56.2)
这样就可以计算其他有趣的值。
g和
b在像素中的长度:
|g| = 138.5
|b| = 139.2
法向量:
g x b = (3710,-15827,-10366)
单位法向量(长度为1):
uN = (0.1925, -0.8209, -0.5377)
将法线按与g和b相同的长度(138.9像素)进行缩放:
法线=(26.7,-114.0,-74.7)
现在我有了与g和b相同长度的法线,我将它们绘制在同一张图片上:
![alt text](https://istack.dev59.com/OWOIJ.webp)
我觉得你将会面临一个新问题:由相机镜头引入的畸变。三个点不完美地投影到二维照片平面上。有一种球形畸变使得直线不再直,等长线段不再等长,法线也稍微偏离正常。
微软研究院有一种算法可以纠正相机的畸变:
一种灵活的相机校准新技术
但这超出了我的能力:
我们提出了一种灵活的新技术来轻松校准相机。它非常适合没有专业3D几何或计算机视觉知识的使用。该技术只需要相机观察到在至少两个不同方向上显示的平面图案。可以自由移动相机或平面图案。运动不需要知道。径向镜头畸变被建模。所提出的程序由闭式解决方案组成,然后进行基于最大似然标准的非线性细化。已经使用计算机模拟和实际数据来测试所提出的技术,并获得了非常好的结果。与使用两个或三个正交平面等昂贵设备的传统技术相比,所提出的技术易于使用和灵活。它将3D计算机视觉从实验室环境推进到实际使用中。
他们有一个样本图像,您可以看到畸变:
![alt text](https://istack.dev59.com/ebuzg.gif)
(来源: microsoft.com)
注意
- 你不知道你看到的是纸板的“顶部”还是“底部”,所以法向量可能会垂直镜像(即z = -z)
更新
一个人在推导代数公式时发现了一个错误。修正后的公式我认为没有简单的闭合形式。这并不太糟糕,因为它无法完全解决;但可以通过数值方法。
这是Excel中的屏幕截图,我从两个已知规则开始:
g · b = 0
和
|g| = |b|
将第二个规则写成差异(“错误”数量),然后将两者相加并使用该值作为数字,使Excel的求解器最小化:
![alt text](https://istack.dev59.com/gAcmP.webp)
这意味着你需要编写自己的数值迭代求解器。我正在看着我大学的《工程数值方法》教材;我知道它包含用于解决没有简单闭式形式的递归方程的算法。