Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.93 KB | None | 0 0
  1. # Estimación de transformación afín de 1 a 2 empleando solo "inliers"
  2. def estimar_afinidad(p1, p2):
  3.     A_list = []
  4.     b_list = []
  5.     for p in p1:
  6.         a1 = [p[0], p[1], p[2], 0., 0., 0.]
  7.         a2 = [0., 0., 0., p[0], p[1], p[2]]
  8.         A_list.append(a1)
  9.         A_list.append(a2)
  10.     A = np.array(A_list)
  11.     for p in p2:
  12.         b_list.append([p[0]])
  13.         b_list.append([p[1]])
  14.     b = np.array(b_list)
  15.    
  16.     t1 = A.T
  17.     print(t1.shape)
  18.     t2 = np.matmul(t1, A)
  19.     print(t2.shape)
  20.     t3 = np.linalg.inv(t2)
  21.    
  22.     #t4 = np.matmul(t3, t1)
  23.     #tr = t4.dot(b)
  24.    
  25.     #tr = np.linalg.inv(np.matmul(A.T, A)).dot(A.T.dot(b))
  26.    
  27.     tr = np.eye(3)
  28.     # ToDO (usar solución en forma cerrada)
  29.     return tr
  30.  
  31. p1_inliers = p1[inliers, :]
  32. p2_inliers = p2[inliers, :]
  33.  
  34. # estimación de transformación en coordenadas normalizadas
  35. A = estimar_afinidad(p1_inliers, p2_inliers)
  36.  
  37. imshow2(img1, img2, A)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement