【发布时间】:2016-08-25 07:11:06
【问题描述】:
一个星期以来,我一直在努力解决一个问题,即我无法将一张脸从image 中的左脸等非正面旋转到同一张图片中的右脸等正面。
1)。我在learnopencv网站上使用了一个关于delaunay的教程来获取左脸的所有三角形(大约138个三角形),如下所示:
...
triangle num 4: [100, 383] | [120, 374] | [112, 385]
triangle num 5: [120, 374] | [100, 383] | [92, 345]
triangle num 6: [136, 396] | [137, 379] | [151, 394]
triangle num 7: [137, 379] | [136, 396] | [118, 395]
triangle num 8: [92, 345] | [86, 414] | [80, 451]
triangle num 9: [86, 414] | [92, 345] | [100, 383]
triangle num 10: [86, 414] | [100, 383] | [118, 395]
triangle num 11: [116, 336] | [120, 374] | [92, 345]
triangle num 12: [120, 374] | [116, 336] | [133, 344]
...
2)。和这个库:https://github.com/chili-epfl/attention-tracker(可以估计头部姿势)得到左脸头部姿势的4x4矩阵变换,这个矩阵似乎是opencv中Rodrigues函数的结果。
0.659585 -0.749291 -0.0592507 0.0591621
-0.0327269 -0.107385 0.993679 -0.00523744
-0.750917 -0.653477 -0.0953513 -0.280204
0 0 0 1
所以我不知道下一步如何使用步骤 2 中的 4x4 矩阵旋转步骤 1 中的所有三角形以获得右脸的结果。 请帮忙!
【问题讨论】:
-
也许一些代码和图像会有助于获得答案......
-
代码真的很长,所以我想我的代码的结果会更清楚。更具体地说,我的三角形列表声明如下: cv::vector<:vector> > list_tri_points 所以每个项目都是二维点的列表,如步骤 1 中的结果和步骤 2 中的矩阵 4x4我存储在 cv::Mat 类型的变量中我想要实现的是通过使用矩阵 4x4 以某种方式将 list_tri_points 中的所有三角形转换为新的三角形列表。这个新的三角形列表将呈现在正面
标签: opencv rotation head pose-estimation face