def ray(self, pts, undistort=True, rotate=False, normalize=False):
"""
Returns the ray corresponding to the points.
Optionally undistort (defaults to true), and
rotate ray to the camera's viewpoint
"""
upts = self.undistort_points(pts) if undistort else pts
ret = unproject_points(
np.hstack([ (colvec(upts[:,0])-self.cx) / self.fx, (colvec(upts[:,1])-self.cy) / self.fy ])
)
if rotate:
ret = self.extrinsics.rotate_vec(ret)
if normalize:
ret = ret / np.linalg.norm(ret, axis=1)[:, np.newaxis]
return ret
评论列表
文章目录