我正在开发一款 Kinect 游戏,我应该将玩家“打扮”成某种衣服。 由于玩家应该始终站在设备的正前方,因此我使用一个简单的 jpg 文件来进行“装饰”。
当用户仍然站在正面位置时,弯曲膝盖或向右或向左倾斜,我的问题就开始了。我想对这个“衣服”图像应用适当的变换,以便它仍然或多或少正确地覆盖玩家的 body 。
通过 Kinect 传感器,我可以获得有关以下玩家 body 部位位置的当前信息:
是否有任何库(C++、C#、Java)或已知算法可以进行此类转换?
最佳答案
任务复杂但可行。
我会将“裙子”分成 ARM 、躯干/上半身和下半身。然后,您可以在 java 中使用(凭内存)AffineTransform,尽管大多数语言都有针对图像进行矩阵变换的算法。
我建议分割图像的原因是,当你进行变换时,你会扭曲图像的顶部部分,这将允许你进行一些旋转(当人们倾斜时)并在 ARM 移动时包裹 ARM .
编辑:
我也不会转换每个帧(CPU 密集型)我会创建一个可能角度的彩虹表并查找图像
关于Kinect 游戏的图像转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916429/