Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.52 KB | None | 0 0
  1. import pyquaternion
  2. from pyquaternion import Quaternion
  3. import numpy as np
  4.  
  5.  
  6. def getQfromR(R):
  7.     return pyquaternion.Quaternion(matrix=R)
  8.  
  9. def quaternion_distance(r1, r2):
  10.     r1 = r1.reshape((3, 3))
  11.     r2 = r2.reshape((3, 3))
  12.     q1 = getQfromR(r1)
  13.     q2 = getQfromR(r2)
  14.     dist =  q1 * q2.inverse
  15.     return dist.degrees
  16.  
  17. #статистики по всем
  18. dists = {"Alexey": [], "Ratmir": [], "Anvar": [], "Ilmir": [], "Anvar": [], "Arkadiy": [], "Alice": [], "Ilya": []}
  19.  
  20. #Считывание файла
  21. content = json.load(f)
  22. position = content["RightRing"]
  23. label = position["Imu"]["CalibratedRelativeHmd"]
  24. for i in range(len(list(position["Markup"]["Orientation"]))):
  25.     q1 = Quaternion(label[3], label[0], label[1], label[2])
  26.     label_human = list(position["Markup"]["Orientation"][i].values())[-1]
  27.     key = list(position["Markup"]["Orientation"][i].keys())[-1]
  28.  
  29.     q2 = Quaternion(label_human[3], label_human[0], label_human[1], label_human[2])
  30.     dist = (quaternion_distance(q1.rotation_matrix, q2.rotation_matrix))
  31.     #сохраняем результат на данном человека для данного кадра
  32.     dists[key].append((dist))
  33.  
  34.  
  35. #после того, как считали для всех файлов - сохраняем
  36. for x in dists:
  37.     print(x)
  38.     arr = dists[x]
  39.     np.save(f"../{x}.npy", arr)
  40.     print(np.mean(arr), np.median(arr))
  41.  
  42.  
  43. #рисуем гистограмму
  44. data = np.load("Ratmir.npy")
  45. plt.hist(data, bins=30, alpha=0.5)
  46. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement