colmap的几种相机类型和内外参取得方法

colmap的相机类型可以参考models.h文件。

主要有以下几种相机类型:

SimplePinhole:

内参格式:f, cx, cy

实际用的时候:fx=fy=f


Pinhole:

内参格式:fx, fy, cx, cy

其他可以自行查看models.h文件。

内参存放在images.bin, 外参存放在cameras.bin中

python 复制代码
def read_colmap(path):
    try:
        cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.bin")
        cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.bin")
        cam_extrinsics = read_extrinsics_binary(cameras_extrinsic_file)
        cam_intrinsics = read_intrinsics_binary(cameras_intrinsic_file)
    except:
        cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.txt")
        cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.txt")
        cam_extrinsics = read_extrinsics_text(cameras_extrinsic_file)
        cam_intrinsics = read_intrinsics_text(cameras_intrinsic_file)

extr = cam_extrinsics[key]
intr = cam_intrinsics[extr.camera_id]

R = qvec2rotmat(extr.qvec)
t = np.array(extr.tvec)

#world to camera
T = np.zeros((4, 4))
T[:3, :3] = R
T[:3, 3] = t
T[3, 3] = 1.0

def qvec2rotmat(qvec):
    return np.array([
        [1 - 2 * qvec[2]**2 - 2 * qvec[3]**2,
         2 * qvec[1] * qvec[2] - 2 * qvec[0] * qvec[3],
         2 * qvec[3] * qvec[1] + 2 * qvec[0] * qvec[2]],
        [2 * qvec[1] * qvec[2] + 2 * qvec[0] * qvec[3],
         1 - 2 * qvec[1]**2 - 2 * qvec[3]**2,
         2 * qvec[2] * qvec[3] - 2 * qvec[0] * qvec[1]],
        [2 * qvec[3] * qvec[1] - 2 * qvec[0] * qvec[2],
         2 * qvec[2] * qvec[3] + 2 * qvec[0] * qvec[1],
         1 - 2 * qvec[1]**2 - 2 * qvec[2]**2]])

如果是SimplePinhole,

那么,fx = fy = intr[0], cx = intr[1], cy = intr[2]

其他类推。

相关推荐
新智元43 分钟前
阿里王牌 Agent 横扫 SOTA,全栈开源力压 OpenAI!博士级难题一键搞定
人工智能·openai
新智元1 小时前
刚刚,OpenAI/Gemini 共斩 ICPC 2025 金牌!OpenAI 满分碾压横扫全场
人工智能·openai
机器之心1 小时前
OneSearch,揭开快手电商搜索「一步到位」的秘技
人工智能·openai
阿里云大数据AI技术1 小时前
2025云栖大会·大数据AI参会攻略请查收!
大数据·人工智能
YourKing2 小时前
yolov11n.onnx格式模型转换与图像推理
人工智能
sans_2 小时前
NCCL的用户缓冲区注册
人工智能
sans_2 小时前
三种视角下的Symmetric Memory,下一代HPC内存模型
人工智能
算家计算2 小时前
模糊高清修复真王炸!ComfyUI-SeedVR2-Kontext(画质修复+P图)本地部署教程
人工智能·开源·aigc
虫无涯2 小时前
LangSmith:大模型应用开发的得力助手
人工智能·langchain·llm
算家计算3 小时前
DeepSeek-R1论文登《自然》封面!首次披露更多训练细节
人工智能·资讯·deepseek