Skip to content

Commit

Permalink
Fix: Masks having wrong dimension after undistortion (causes crash in…
Browse files Browse the repository at this point in the history
… splatfacto) (nerfstudio-project#2987)

* Add third dim to masks after undistortion to fix error in multiplying color images with masks.

* Revert auto format of imports to fix ruff error

---------

Co-authored-by: Nicolas Zunhammer <[email protected]>
  • Loading branch information
2 people authored and ArpegorPSGH committed Jun 22, 2024
1 parent 5bd129b commit ad4f92b
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions nerfstudio/data/datamanagers/full_images_datamanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,8 @@ def _undistort_image(
mask = cv2.undistort(mask, K, distortion_params, None, newK) # type: ignore
mask = mask[y : y + h, x : x + w]
mask = torch.from_numpy(mask).bool()
if len(mask.shape) == 2:
mask = mask[:, :, None]
K = newK

elif camera.camera_type.item() == CameraType.FISHEYE.value:
Expand All @@ -406,6 +408,8 @@ def _undistort_image(
mask = mask.astype(np.uint8) * 255
mask = cv2.fisheye.undistortImage(mask, K, distortion_params, None, newK)
mask = torch.from_numpy(mask).bool()
if len(mask.shape) == 2:
mask = mask[:, :, None]
K = newK
elif camera.camera_type.item() == CameraType.FISHEYE624.value:
fisheye624_params = torch.cat(
Expand Down Expand Up @@ -498,6 +502,8 @@ def _undistort_image(
)
/ 255.0
).bool()[..., None]
if len(mask.shape) == 2:
mask = mask[:, :, None]
assert mask.shape == (undist_h, undist_w, 1)
K = undist_K.numpy()
else:
Expand Down

0 comments on commit ad4f92b

Please sign in to comment.