Creating a depth map of a 3D surface

I want to create a depth map of a 3D object (ie some 3D object like a sphere or cube plotted with surf or mesh) from an arbitrary perspective. I could write a primary ray-tracing algorithm but this seems like a lot of overhead. Is there any pre existing function to do something like this?

Antworten (2)

George Abrahams
George Abrahams am 10 Feb. 2024

1 Stimme

Hi @Ben. My 3D Rendering Toolbox on File Exchange will easily handle this, assuming that you want a perspective projection. For example, you can see the toolbox generating a depth map in the figure below.

2 Kommentare

Mohannad
Mohannad am 16 Feb. 2024
Could you please guide me on how to replace PROJECTION_MATRIX with a camera Intrinsics (K)?
Hi @Mohannad. I've just published an update to the ProjectionMatrix class to convert an intrinsic matrix to a projection matrix, which is required to perform rendering with the toolbox. The syntax is:
obj = ProjectionMatrix(intrinsicMatrix, imageSize, near, far)
As with everything else, there's detailed documentation about the inputs and so on in the code.

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 13 Mär. 2014

0 Stimmen

Would this be like projecting perpendicular to the perspective and then taking the point by point max() of the resulting z values?

Gefragt:

Ben
am 13 Mär. 2014

Kommentiert:

am 28 Feb. 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by