Commit d851bc31 authored by Roman Shapovalov's avatar Roman Shapovalov Committed by Facebook GitHub Bot
Browse files

Read depth maps from OpenXR files

Summary:
Blender uses OpenEXR to dump depth maps, so we have to support it.
OpenCV requires to explicitly accepth the vulnerabilities by setting the env var before exporting.
We can set it but I think it should be user’s responsibility.
OpenCV error reporting is adequate, so I don’t handle the error on our side.

Reviewed By: bottler

Differential Revision: D47403884

fbshipit-source-id: 2fcadd1df9d0efa0aea563bcfb2e3180b3c4d1d7
parent 8164ac40
......@@ -245,10 +245,21 @@ def load_mask(path: str) -> np.ndarray:
def load_depth(path: str, scale_adjustment: float) -> np.ndarray:
if not path.lower().endswith(".png"):
if path.lower().endswith(".exr"):
# NOTE: environment variable OPENCV_IO_ENABLE_OPENEXR must be set to 1
# You will have to accept these vulnerabilities by using OpenEXR:
# https://github.com/opencv/opencv/issues/21326
import cv2
d = cv2.imread(path, cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)[..., 0]
d[d > 1e9] = 0.0
elif path.lower().endswith(".png"):
d = load_16big_png_depth(path)
else:
raise ValueError('unsupported depth file name "%s"' % path)
d = load_16big_png_depth(path) * scale_adjustment
d = d * scale_adjustment
d[~np.isfinite(d)] = 0.0
return d[None] # fake feature channel
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment