| | |
| |
|
| | import numpy as np |
| | from scipy.spatial.transform import Rotation |
| |
|
| |
|
| | def crop_map(raster, xy, size, seed=None): |
| | h, w = raster.shape[-2:] |
| | state = np.random.RandomState(seed) |
| | top = state.randint(0, h - size + 1) |
| | left = state.randint(0, w - size + 1) |
| | raster = raster[..., top : top + size, left : left + size] |
| | xy -= np.array([left, top]) |
| | return raster, xy |
| |
|
| |
|
| | def decompose_rotmat(R_c2w): |
| | R_cv2xyz = Rotation.from_euler("X", -90, degrees=True) |
| | rot_w2c = R_cv2xyz * Rotation.from_matrix(R_c2w).inv() |
| | roll, pitch, yaw = rot_w2c.as_euler("YXZ", degrees=True) |
| | return roll, pitch, yaw |