Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. def first_step_of_hw_working():
  2.     f = 1
  3.     K = np.identity(3)
  4.     R = K.copy()
  5.     C = np.array(np.arange(0, 3 * 1).reshape(3, 1), dtype=float)
  6.     C[:, 0] = [1, 2, -3]
  7.  
  8.     X1d, X2d, X3d = get_first_hw_points()
  9.     # X1d, X2d, X3d = get_second_hw_points()
  10.     Pb = hw03.make_pb(K, R, C, f)
  11.     X1b, X2b, X3b = project_3_points(Pb, X1d, X2d, X3d)
  12.  
  13.     X1c = from_Beta_to_Gama(K, X1b)
  14.     X2c = from_Beta_to_Gama(K, X2b)
  15.     X3c = from_Beta_to_Gama(K, X3b)
  16.  
  17.     c12, c23, c31 = compute_angles_cosines(X1c, X2c, X3c)
  18.     d12, d23, d31 = compute_distances(X1d, X2d, X3d)
  19.  
  20.     N1, N2, N3 = p3p_distances(d12, d23, d31, c12, c23, c31)
  21.  
  22.     # N = [N1[0], N2[0], N3[0]]
  23.     # u = np.array(np.arange(0, 2 * 3).reshape(2, 3), dtype=float)
  24.     # X = np.array(np.arange(0, 3 * 3).reshape(3, 3), dtype=float)
  25.     # u[:, 0] = np.reshape(X1a, (2,))
  26.     # u[:, 1] = np.reshape(X2a, (2,))
  27.     # u[:, 2] = np.reshape(X3a, (2,))
  28.     #
  29.     # X[:, 0] = np.reshape(X1d, (3,))
  30.     # X[:, 1] = np.reshape(X2d, (3,))
  31.     # X[:, 2] = np.reshape(X3d, (3,))
  32.     #
  33.     # R, C = p3p_RC(N, u, X, K)
  34.  
  35.     # Vectors from C to X in Eta base
  36.     Y1e = normalize(X1c) * N1[0]
  37.     Y2e = normalize(X2c) * N2[0]
  38.     Y3e = normalize(X3c) * N3[0]
  39.  
  40.     Z2e = Y2e - Y1e
  41.     Z3e = Y3e - Y1e
  42.     Z1e = np.cross(Z2e.T, Z3e.T)
  43.  
  44.     Z2d = X2d - X1d
  45.     Z3d = X3d - X1d
  46.     Z1d = np.cross(Z2d.T, Z3d.T)
  47.  
  48.     ZE = np.array(np.arange(0, 3 * 3).reshape(3, 3), dtype=float)
  49.     ZE[:, 0] = Z1e
  50.     ZE[:, 1] = Z2e.T    # WTF why transpose
  51.     ZE[:, 2] = Z3e.T
  52.  
  53.     ZD = np.array(np.arange(0, 3 * 3).reshape(3, 3), dtype=float)
  54.     ZD[:, 0] = Z1d
  55.     ZD[:, 1] = Z2d.T
  56.     ZD[:, 2] = Z3d.T
  57.  
  58.     R = ZE @ invert(ZD)
  59.  
  60.     Cd1 = X1d - R.T @ Y1e
  61.     Cd2 = X2d - R.T @ Y2e
  62.     Cd3 = X3d - R.T @ Y3e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement