【发布时间】:2014-03-10 14:22:56
【问题描述】:
在我们当前的项目中,我们使用安装在用户头顶的深度摄像头来识别手指、手和触摸事件。这很好用,已经可以作为一种新型的输入设备。
我们的下一步是使用增强现实眼镜在用户手掌上显示按钮/控件。对于这一步,我们需要对我们识别的数据(指尖、手掌四边形的角点)进行转换,以将它们显示在增强现实眼镜上的正确位置。 未来我们将使用真实的 3D 输出场景,但现在我们只是用眼镜显示 2D 图像。 您可以将整个设置想象成一个立体视图,深度摄像头和用户的眼睛作为摄像头。
为了获得变换矩阵,我们在输出图像上连续显示一个随机点,用户必须将指尖放在该位置上。由此我们得到输入图像(深度相机)和输出图像(增强现实眼镜)之间的点对应关系。我们目前使用其中的 20 个对应关系,然后使用 Emgu 的 FindHomography() 方法得到变换矩阵。
对于我们的第一次尝试,这已经可以正常工作,但并不完美。我们应该如何着手获得更好的结果?
我们所拥有的:
- 输入图像中的二维像素坐标(深度相机 320x240)
- 3D 坐标(相对于我们的深度相机)
- (输出图像中对应的二维像素坐标)
我们需要什么:
一种将 2D 像素坐标或相对于深度相机的 3D 坐标映射到输出图像(现在是 2D,以后可能是 3D)的方法。
问题:
我们应该在这里使用什么类型的转换? FindHomography(), GetPerspectiveTransformation(), basicMatrix?, essentialMatrix?
非常感谢任何帮助/建议。提前谢谢!
【问题讨论】:
标签: computer-vision augmented-reality emgucv coordinate-transformation homography