概述
通常Blender或其他软件中通过相机位置和lookat信息指定相机pose。使用python根据这些信息获取相机外参的代码如下:
def normalize(v):
return v/np.linalg.norm(v)
def world_to_camera_with_pose(view_pose):
lookat_pose = position_to_np_array(view_pose.lookat)
camera_pose = position_to_np_array(view_pose.camera)
up = np.array([0,1,0])
R = np.diag(np.ones(4))
R[2,:3] = normalize(lookat_pose - camera_pose)
R[0,:3] = normalize(np.cross(R[2,:3],up))
R[1,:3] = -normalize(np.cross(R[0,:3],R[2,:3]))
T = np.diag(np.ones(4))
T[:3,3] = -camera_pose
return R.dot(T)
def camera_to_world_with_pose(view_pose):
return np.linalg.inv(world_to_camera_with_pose(view_pose))
Reference
最后
以上就是斯文太阳为你收集整理的根据相机位置和Lookat信息计算相机外参[Python]的全部内容,希望文章能够帮你解决根据相机位置和Lookat信息计算相机外参[Python]所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复