在Blender或其虚拟环境中,通常设置相机FOV和图像长和宽。以下代码展示了如何通过这几个参数获得相机内参:
def camera_intrinsic_transform(vfov=45,hfov=60,pixel_width=320,pixel_height=240):
camera_intrinsics = np.zeros((3,4))
camera_intrinsics[2,2] = 1
camera_intrinsics[0,0] = (pixel_width/2.0)/math.tan(math.radians(hfov/2.0))
camera_intrinsics[0,2] = pixel_width/2.0
camera_intrinsics[1,1] = (pixel_height/2.0)/math.tan(math.radians(vfov/2.0))
camera_intrinsics[1,2] = pixel_height/2.0
return camera_intrinsics