(pts,RT,K)
| 119 | return np.concatenate([R,t],-1) |
| 120 | |
| 121 | def project_points(pts,RT,K): |
| 122 | pts = np.matmul(pts,RT[:,:3].transpose())+RT[:,3:].transpose() |
| 123 | pts = np.matmul(pts,K.transpose()) |
| 124 | dpt = pts[:,2] |
| 125 | mask0 = (np.abs(dpt)<1e-4) & (np.abs(dpt)>0) |
| 126 | if np.sum(mask0)>0: dpt[mask0]=1e-4 |
| 127 | mask1=(np.abs(dpt) > -1e-4) & (np.abs(dpt) < 0) |
| 128 | if np.sum(mask1)>0: dpt[mask1]=-1e-4 |
| 129 | pts2d = pts[:,:2]/dpt[:,None] |
| 130 | return pts2d, dpt |
| 131 | |
| 132 | |
| 133 | def draw_keypoints(img, kps, colors=None, radius=2): |
nothing calls this directly
no outgoing calls
no test coverage detected