36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import numpy as np
|
|
import open3d as o3d
|
|
from utils.get_pose_matrix import get_c2w,get_w2c
|
|
|
|
def get_cam_infos(images: dict, cameras:dict):
|
|
cam_infos = {}
|
|
for image_id, image_info in images.items():
|
|
camera_info = cameras[image_info.camera_id]
|
|
fx = camera_info.params[0]
|
|
fy = camera_info.params[1]
|
|
cx = camera_info.params[2]
|
|
cy = camera_info.params[3]
|
|
width = camera_info.width
|
|
height = camera_info.height
|
|
name = image_info.name
|
|
cam_infos[image_id] = {
|
|
"name": name,
|
|
"w2c": get_w2c(image_info.qvec, image_info.tvec),
|
|
"c2w": get_c2w(image_info.qvec, image_info.tvec),
|
|
"width": camera_info.width,
|
|
"height": camera_info.height,
|
|
"intrinsics": o3d.camera.PinholeCameraIntrinsic(
|
|
width,
|
|
height,
|
|
fx=fx,
|
|
fy=fy,
|
|
cx=cx,
|
|
cy=cy
|
|
),
|
|
"K": np.array([
|
|
[fx, 0, cx],
|
|
[0, fy, cy],
|
|
[0, 0, 1]
|
|
])
|
|
}
|
|
return cam_infos |