Closed 2226415223 closed 8 months ago
Hi there. There are two depth conventions. One is using the distance from the camera to the 3D point, whereas the other is using the range along the z-axis only. MVE implements the former method. You are expecting the latter.
In general, the latter approach is not always applicable, for example with fisheye camera models with >=180 degrees field of view, around the singularity.
In any case, there is a function that converts between these conventions here: https://github.com/simonfuhrmann/mve/blob/master/libs/mve/depthmap.h#L54-L64
I hope this helps!
yes you are right,thanks
I found in depthmap.cc, pixel_3dpos's normalize cause the original plane became curved surface
I use game render result for reconstruct test, I replace camera parameters and depthmap with groundtruth result from game engine.
this is original code's result:
![reconstruct](https://github.com/simonfuhrmann/mve/assets/62322001/c09d2b88-005e-41e6-a243-2e9cbe322038)
this is the one I remove the normalize operation
as the camera celibration formula: camCoordPos.z (inv_k_Matrix pixelPos) = camCoordPos, the normalize seems not necessary