skip MVE
Hello, if I have a well-defined geometry, multiple images, and the corresponding camera poses for the images, how can I skip the MVE part and directly use MVS Texturing?
Texturing (3D model + images + camera parameters --> textured 3D model)
$codedir/texrecon/build/apps/texrecon/texrecon scene::undistorted surface-clean.ply textured
thanks,just make it work by customizing my own .cam file and images,however,it is a bit of comfuse how to convert my opengl extrinsics to mvs'one,do you have any idea?
@blacksino
private func arkitToMVE(_ R: simd_double3x3, _ t: simd_double3) -> (simd_double3x3, simd_double3) {
let transform = simd_double3x3(rows: [
simd_double3(1, 0, 0),
simd_double3(0, -1, 0),
simd_double3(0, 0, -1)
])
let Rcv = transform * normalizeRotationMatrix(R)
let tcv = transform * t
return (Rcv, tcv)
}
This is my implementation from the arkit coordinate to mve coordinate. Hope it help you.
@thomas-graphopti I have got a ply with arkit co ordinates. Do I need to apply same transform for the ply? Or can we directly use ply + arkit camera parameters? Thanks in advance
@thomas-graphopti I have got a ply with arkit co ordinates. Do I need to apply same transform for the ply? Or can we directly use ply + arkit camera parameters? Thanks in advance
Hi, @SB162024 . If I understand correctly, you’re asking whether it’s necessary to transform the coordinates of your PLY file when working with ARKit data, or if you can directly use the PLY data along with the ARKit camera parameters.
If your goal is to use mvs-texturing/MVE/OpenMVS to apply textures, you will indeed need to transform the ARKit poses to align with the coordinate system used by MVE. This is because ARKit uses a right-handed, Y-up coordinate system, whereas mvs-texturing/MVE/OpenMVS expects a left-handed coordinate system. Therefore, a conversion is required before you proceed with texturing.
For more details on ARKit’s coordinate system, you can refer to the official documentation here: Understanding World Tracking in ARKit.
I hope this clarifies your question! Let me know if you need further assistance.
@thomas-graphopti Thanks for quick reply. Sorry for bothering you again. I tried with converted camera parameters and converted mesh ply file. But the resultan model isnt a textured model. The resultant texture files are almost grey. Have you faced this issue?
@SB162024,
The information you have provided is insufficient. To texture a mesh using mve-texturing, you will need to convert your pose, images, and mesh data into the format specified here: MVE File Format. Once formatted correctly, you can use the texrecon tool within mve-texturing to apply textures to your mesh.
@thomas-graphopti I'm newbie. Please bear with me. I tried another co ordinate system too but failed. I get the images , ply and pose from reality scan app. I convert images to JPG(heic -> JPG) and then use pose to get the camera parameters and generate cam files (after co ordinate change) and apply similar co ordinate change to my ply file. Then I use MVS texturing. But the texture obj doesn't look good.
@SB162024 The MVE provide a visualisation tool umve to verify data format. you should use it to check your data before texturing.