我想从单张图片中进行三维脸部重建。我用Google搜索并找到了
https://github.com/mkorunoski/3D-Face-Reconstruction/。此链接使用以下值进行3D重建:
const cv::Point3f modelPointsArr[] =
{
cv::Point3f(-1.030300, -0.41930, -0.38129),
cv::Point3f(-0.493680, -0.38700, -0.55059),
cv::Point3f(+1.030300, -0.41930, -0.38129),
cv::Point3f(+0.493680, -0.38700, -0.55059),
cv::Point3f(-0.363830, +0.52565, -0.79787),
cv::Point3f(+0.363830, +0.52565, -0.79787),
cv::Point3f(-0.599530, +1.10768, -0.71667),
cv::Point3f(+0.599530, +1.10768, -0.71667),
cv::Point3f(-0.000002, +1.99444, -0.94946)
};
修改 这些点是使用MeshLab"获取信息"图像的选择器位于项目的工作空间中,如http://www.morethantechnical.com/2012/10/17/head-pose-estimation-with-opencv-opengl-revisited-w-code/中所述。
但我想用不同的图像获得三维人脸重建。 有没有办法从给定的图像中自动获取这样的3d点而不是为特定图像手动编写?
答案 0 :(得分:0)
如果您的算法需要这些点,就像您在代码中编写它们一样,那么它们应该找到适合您程序的方法。我看到两个选择:
在第二个选项中,您只是将手动书写移动到其他地方......
你必须问自己这些数字来自哪里,并实现计算它们的算法,并在你的代码中实现它 - 这将绕过在代码中手动编写它们的需要。