将colmap空三导入blender

主要问题是姿态系统的转换

经实验发现:

外参

colmap的外参四元数计算得到的R为Rc2w,即相机到世界的R。
Tx,Ty,Tz是原点在相机坐标系下的坐标,即P=[R|t]中的t
相机原点在世界系下的坐标为:C = -Rw2c·t
其中Rw2c=Rc2w的转置或逆

内参

blender不支持skew参数

焦距f = len/senor_size_max_width_or_heght*max(heiht,width)
主点由shift_x和shift_y表达

注意

colmap使用的cv系,对应的图像坐标系统为x向右,y向下。
blender实验的cg系,对应的图像坐标系统为x向右,y向上。
因此,旋转矩阵需要乘以一个变化矩阵,即:

        R_bcam2cv = Matrix(((1, 0,  0),(0, -1, 0),(0, 0, -1)))

实验

        R_bcam2cv = Matrix(((1, 0,  0),(0, -1, 0),(0, 0, -1)))print(R_bcam2cv)quat_a = mathutils.Quaternion((0.979036, 0.0658575 ,-0.189701 ,0.0341345))location = Vector((3.62986 ,0.228074 ,-0.737925))rotation = quat_a.to_matrix()location = -1*rotation.transposed() @ locationrotation = rotation.transposed() @ R_bcam2cvprint(location)instricstr = "2 2 3072 2048 2777.04 2756.82 1536 1024 "exstric = "1 0.973498 0.0553783 -0.21697 0.0464699 4.51543 0.363207 1.23276 "instric = instricstr.split()instrics = np.array(instric)instrics = instrics.astype(np.float)instric = instricsprint(instric)#cam.dof_object = empty#scene.render.resolution_percentage = scale * 100# create a new camerabpy.ops.object.add(type='CAMERA',location=location)ob = bpy.context.objectob.name = 'CamFrom3x4PObj'cam = ob.datacam.name = 'CamFrom3x4P'cam.type = 'PERSP'#cam.lens = instric[4]/instric[2]*2.#cam.lens_unit = 'MILLIMETERS'cam.sensor_width  = 2sensor_width_in_mm = cam.sensor_widthsensor_fit = 'AUTO'get_sensor_fit(sensor_fit, instric[2], instric[3])cam.sensor_fit = 'HORIZONTAL'print(cam.sensor_fit)#cam.shift_x = 0#cam.shift_y = 0cam.clip_start = 1.0cam.clip_end = 250000000.0w   = instric[2]h   = instric[3]f_x = instric[4]f_y = instric[5]c_x = instric[6]c_y = instric[7]cam.shift_x = -(c_x / w - 0.5)cam.shift_y = (c_y - 0.5 * h) / wcam.lens = f_x / w * sensor_width_in_mmpixel_aspect = f_y / f_xscene = bpy.context.scenescale = 1scene.render.resolution_x = float(instric[2]) / scalescene.render.resolution_y = instric[3] / scalescene.render.pixel_aspect_x = 1.0scene.render.pixel_aspect_y = pixel_aspectob.matrix_world = Matrix.Translation(location)@(rotation.to_4x4())location, rotation = scene.camera.matrix_world.decompose()[0:2]print(location,rotation)

原始影像与渲染影像:

参考:
https://docs.blender.org/api/current/bpy.types.Camera.html
https://github.com/zju3dv/pvnet-rendering/blob/master/blender/blender_utils.py
https://www.rojtberg.net/1601/from-blender-to-opencv-camera-and-back/

将colmap空三导入blender相关推荐

  1. 【航天远景 MapMatrix 精品教程】04 Metashape空三导入MapMatrix

    #[航天远景 MapMatrix 精品教程]04 Metashape空三导入MapMatrix 文章目录 前言 一.Metashape空三导出 二.空三格式转换 三.导入MapMatrix 前言 本章 ...

  2. 【Metashape精品教程16】空三导入inpho、航天远景(MapMatrix)

    #[Metashape精品教程16]空三导入inpho.航天远景(MapMatrix) 文章目录 前言 一.导出空三 二.导入inpho 三.导入MapMatrix 前言 本章节介绍如何将Metash ...

  3. Agisoft Metashape 空三导入inpho(带连接点和控制点)

    Agisoft Metashape 空三导入inpho(带连接点和控制点) 文章目录 Agisoft Metashape 空三导入inpho(带连接点和控制点) 前言 一.导出工程 二.导入工程 三. ...

  4. PhotoScan集群,空三加密导入CC,正射影像生成及拼接(附航测练习数据)

    这次PhotoScan的教程涉及集群,空三导入CCC(Smart3D),以及正射和拼接流程. PhotoScan在1.5.0之后改名为Metashape,除名称改变外,操作基本相同.具体的软件介绍可看 ...

  5. PhotoScan集群,空三导CC,正射影像生成

    之前我们推了一篇ContextCapture与Pix4D生成正射影像并进行拼接修图(附航测练习数据下载),其中有留言提到PhotoScan空三,正射.所以这篇我们就来看看关于PhotoScan的教程. ...

  6. 【PhotoScan精品教程】任务一:新建工程、导入照片、设置坐标系、导入控制点(POS)、自由空三

    <无人机航空摄影测量精品教程>合集目录(Pix4d.CC.EPS.PhotoScan.Inpho) [PhotoScan精品教程]任务一:新建工程.导入照片.设置坐标系.导入控制点(POS ...

  7. ue4导入倾斜摄影_倾斜摄影建模干货|还怕搞不定CC空三?这里只要5分钟……

    关注公众号"三维前沿",持续获取更多操作技巧干货! 01 Q:空三刚开始就失败? A:考虑以下4种情况:考虑ContextCapture Engine 是否打开,尝试关闭后重新打开 ...

  8. 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、连接点分布检查、自由空三

    无人机航测精品专栏链接:<无人机航空摄影测量精品教程> [天工Godwork精品教程]任务一:创建工程(导入相片.编辑相机参数.导入POS) [天工Godwork精品教程]任务二:导入控制 ...

  9. 将瞰景smart3d空三结果导入contextcapture(CC)进行建模

    将瞰景smart3d空三结果导入contextcapture(CC)进行建模 1 参考博文 2 主要问题 3 主要过程 3.1 瞰景smart3d导出空三文件 3.2 空三文件修改 3.2.1 问题原 ...

最新文章

  1. 【2020新书推荐】Introduction to Deep Learning
  2. 【机器学习】主元分析(PCA)以及与SVD的区别联系
  3. 远去的背影与落日以及一对蒙古年轻夫妻
  4. 数据结构(五)层次遍历
  5. oh-my-zsh官方教程
  6. 2019级软件1班安卓实训总结
  7. JDK8新特性(四)之方法引用
  8. 帮助打造无障碍APP Google将自动化测试GTXiLib
  9. C语言学生管理系统(链表实现)
  10. Typecho插件:根据自定时间自动切换主题
  11. 小米6自动重启android,小米6总是自动重启怎么办?小米6自动重启的解决方法
  12. 4.3-python爬虫之图形验证码识别
  13. 超级计算机有什么特点,计算机的特点有哪些
  14. KeyError: ‘Worksheet sheet does not exist.‘
  15. Win10+Vmvare+Ubuntu16.04lts的主机为英伟达TX2重装Ubuntu18.04操作系统
  16. OSChina 周二乱弹 —— 求借妹纸肩膀一用!
  17. android 11 移除桌面搜索栏
  18. Swift学习笔记(5):集合类型
  19. 7-2 实验二 银行利息结算
  20. Codeforce 622 F. The Sum of the k-th Powers(拉格朗日插值求k次幂之和,拉格朗日插值公式)

热门文章

  1. 十年来第一个正式版本 | Kali Linux 2020 发布后我们该怎么渗透?
  2. 各家都在兜售“新零售”,到底是概念炒作还是商业新出路?
  3. 自己动手做个25键热插拔机械键盘 带幻彩ARGB!!!! stm32主控+蓝牙HID模块 typec接口
  4. Python挺酷的 | PyCharm MicroPython ESP32 开发环境搭建
  5. 7-11 计算平均分
  6. 关于虚拟机克隆后如何给克隆出来的虚拟机配ip
  7. RationalDMIS 检具的测量
  8. 科研论文工具大全,收好啦!
  9. java值传递和引用传递(附实例)
  10. 【Game Of AutoTest】4、游戏自动化测试的稳定性保障