到目前为止,我的流程如下:
标记是已知大小的方形标记,示例如下:
- 检测标记
- 使用POSIT获取标记相对于相机的平移 + 旋转- 结果是相机坐标空间中矩阵的变换矩阵。
现在我试图找到两个标记的相关角之间的距离(以毫米为单位)。下面是一个例子:
距离我的意思是欧几里得距离(sqrt(x^2 + y^2 + z^2))。
我认为这应该是可能的,因为我有 mm 距离的参考(任何标记的边缘都是已知的 mm 距离),但我不确定如何从我拥有的两个变换矩阵中得到这个。
编辑:
到目前为止,我已经设法通过将第二个变换矩阵乘以第一个变换矩阵并查看结果的平移来获得标记中心之间的相对距离。
我想我可以通过获取法线和点来获取每个标记的平面。从那里我应该能够通过查看 2D 点如何与该平面相交来获得角的 3d 坐标,并且从那里其余的应该很容易。我不完全确定如何获得标记的法线以及如何计算出表示角的 2D 坐标与平面相交的点。
额外信息:
- 使用 XNA 和 C#
- 使用 AForge.net 进行视频输入和标记检测。