3DDFA
3DDFA copied to clipboard
Bug in `write_obj_with_colors`
I'm testing main.py
. It seems that the function write_obj_with_colors
contains a bug. In particular the line:
s = 'v {:.4f} {:.4f} {:.4f} {} {} {}\n'.format(vertices[1, i], vertices[0, i], vertices[2, i], colors[i, 2],
colors[i, 1], colors[i, 0])
We are writing yxz to the *.obj file instead of xyz.
*.ply file in meshlab:
*.obj file with yxz in meshlab:
If we simply change the indices: format(vertices[1, i], vertices[0, i], vertices[2, i], ...
we don't get the correct vertex colors though (see white shirt of obama)
*.obj file with xyz in meshlab:
Original image:
The 3 meshes don't seem to match in terms of the pose (and orientation). Is there a bug or anything I'm missing?
Some of the mismatch might stem from the fact that the transformation in ddfa.py
# transform to image coordinate space
vertex[1, :] = std_size + 1 - vertex[1, :]
transforms from the right-handed world coordinate system to the image coordinate system which then becomes a left-handed system.
The incorrect switching of axes in the *.obj generation inverts this again leading to a correct right handed coordinate system.
I'm testing
main.py
. It seems that the functionwrite_obj_with_colors
contains a bug. In particular the line:s = 'v {:.4f} {:.4f} {:.4f} {} {} {}\n'.format(vertices[1, i], vertices[0, i], vertices[2, i], colors[i, 2], colors[i, 1], colors[i, 0])
We are writing yxz to the *.obj file instead of xyz.
*.ply file in meshlab:
*.obj file with yxz in meshlab:
If we simply change the indices:
format(vertices[1, i], vertices[0, i], vertices[2, i], ...
we don't get the correct vertex colors though (see white shirt of obama) *.obj file with xyz in meshlab:Original image:
The 3 meshes don't seem to match in terms of the pose (and orientation). Is there a bug or anything I'm missing?
How can you get the obj file with texture?Thank you.
@Matthewli623 Sampling the texture by position correspondence.