classify.py 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. from video_to_photo import run
  2. import os
  3. def classify_jump(name, re):
  4. q = "./capture_image/" + name
  5. qqq = os.path.abspath(q)
  6. result = {}
  7. result["jump_power"] = {}
  8. if (float(re["1"]["val"]) > 140.0):
  9. result["jump_power"]["level"] = 1
  10. elif (float(re["1"]["val"]) > 115.0):
  11. result["jump_power"]["level"] = 2
  12. elif (float(re["1"]["val"]) > 90.0):
  13. result["jump_power"]["level"] = 3
  14. else:
  15. result["jump_power"]["level"] = 4
  16. r = "capture_image" + str(re["1"]["num"]) + ".png"
  17. a = os.path.join(qqq, r)
  18. result["jump_power"]["path"] = a
  19. result["jump_power"]["val"] = re["1"]["val"]
  20. result["core_strength"] = {}
  21. if (float(re["2"]["val"]) < 8.0):
  22. result["core_strength"]["level"] = 1
  23. elif (float(re["2"]["val"]) < 15.0):
  24. result["core_strength"]["level"] = 2
  25. elif (float(re["2"]["val"]) < 30.0):
  26. result["core_strength"]["level"] = 3
  27. else:
  28. result["core_strength"]["level"] = 4
  29. r = "capture_image" + str(re["2"]["num"]) + ".png"
  30. a = os.path.join(qqq, r)
  31. result["core_strength"]["path"] = a
  32. result["landing_position"] = {}
  33. if (float(re["3"]["val"]) > 140.0):
  34. result["landing_position"]["level"] = 1
  35. elif (float(re["3"]["val"]) > 115.0):
  36. result["landing_position"]["level"] = 2
  37. elif (float(re["3"]["val"]) > 90.0):
  38. result["landing_position"]["level"] = 3
  39. else:
  40. result["landing_position"]["level"] = 4
  41. r = "capture_image" + str(re["3"]["num"]) + ".png"
  42. a = os.path.join(qqq, r)
  43. result["landing_position"]["path"] = a
  44. result["landing_position"]["val"] = re["3"]["val"]
  45. return result
  46. def classify_juanfu(name, re):
  47. q = "./capture_image/" + name
  48. qqq = os.path.abspath(q)
  49. result = {}
  50. result["head_power"] = {}
  51. if float(re["1"]["val"]) > 100.0:
  52. result["head_power"]["level"] = 1
  53. elif float(re["1"]["val"]) > 90.0:
  54. result["head_power"]["level"] = 2
  55. elif float(re["1"]["val"]) > 80.0:
  56. result["head_power"]["level"] = 3
  57. else:
  58. result["head_power"]["level"] = 4
  59. r = "capture_image" + str(re["1"]["num"]) + ".png"
  60. a = os.path.join(qqq, r)
  61. result["head_power"]["path"] = a
  62. result["head_power"]["val"] = re["1"]["val"]
  63. result["core_strength"] = {}
  64. if (float(re["2"]["val"]) > 75):
  65. result["core_strength"]["level"] = 1
  66. elif (float(re["2"]["val"]) > 70):
  67. result["core_strength"]["level"] = 2
  68. elif (float(re["2"]["val"]) > 60):
  69. result["core_strength"]["level"] = 3
  70. else:
  71. result["core_strength"]["level"] = 4
  72. r = "capture_image" + str(re["2"]["num"]) + ".png"
  73. a = os.path.join(qqq, r)
  74. result["core_strength"]["path"] = a
  75. result["body_stability"] = {}
  76. if (float(re["4"]["num"]) < 15):
  77. result["body_stability"]["level"] = 1
  78. elif (float(re["4"]["val"]) < 20):
  79. result["body_stability"]["level"] = 2
  80. elif (float(re["4"]["val"]) < 30):
  81. result["body_stability"]["level"] = 3
  82. else:
  83. result["body_stability"]["level"] = 4
  84. result["body_stability"]["val"] = re["4"]["num"]
  85. return result
  86. def classify_pingban(name, re):
  87. q = "./capture_image/" + name
  88. qqq = os.path.abspath(q)
  89. result = {}
  90. result["arm_strength"] = {}
  91. dis = abs(90 - float(re["1"]["val"]))
  92. if (dis < 5):
  93. result["arm_strength"]["level"] = 1
  94. elif (dis < 10):
  95. result["arm_strength"]["level"] = 2
  96. elif (dis < 20):
  97. result["arm_strength"]["level"] = 3
  98. else:
  99. result["arm_strength"]["level"] = 4
  100. r = "capture_image" + str(re["1"]["num"]) + ".png"
  101. a = os.path.join(qqq, r)
  102. result["arm_strength"]["path"] = a
  103. result["arm_strength"]["val"] = re["1"]["val"]
  104. result["stability"] = {}
  105. if (float(re["2"]["val"]) < 5):
  106. result["stability"]["level"] = 1
  107. elif (float(re["2"]["val"]) < 10):
  108. result["stability"]["level"] = 2
  109. elif (float(re["2"]["val"]) < 15):
  110. result["stability"]["level"] = 3
  111. else:
  112. result["stability"]["level"] = 4
  113. r = "capture_image" + str(re["2"]["num"]) + ".png"
  114. a = os.path.join(qqq, r)
  115. result["stability"]["path"] = a
  116. result["stability"]["val"] = re["2"]["val"]
  117. result["standard"] = {}
  118. if (float(re["3"]["val"]) < 5):
  119. result["standard"]["level"] = 1
  120. elif (float(re["3"]["val"]) < 10):
  121. result["standard"]["level"] = 2
  122. elif (float(re["3"]["val"]) < 15):
  123. result["standard"]["level"] = 3
  124. else:
  125. result["standard"]["level"] = 4
  126. r = "capture_image" + str(re["3"]["num"]) + ".png"
  127. a = os.path.join(qqq, r)
  128. result["standard"]["path"] = a
  129. result["standard"]["val"] = re["3"]["val"]
  130. return result
  131. def classify_shendun(name, re):
  132. q = "./capture_image/" + name
  133. qqq = os.path.abspath(q)
  134. result = {}
  135. result["leg_strength"] = {}
  136. if (float(re["1"]["val"]) < 70):
  137. result["leg_strength"]["level"] = 1
  138. elif (float(re["1"]["val"]) < 90):
  139. result["leg_strength"]["level"] = 2
  140. elif (float(re["1"]["val"]) < 100):
  141. result["leg_strength"]["level"] = 3
  142. else:
  143. result["leg_strength"]["level"] = 4
  144. r = "capture_image" + str(re["1"]["num"]) + ".png"
  145. a = os.path.join(qqq, r)
  146. result["leg_strength"]["path"] = a
  147. return result
  148. def classify_gaotaitui(name, re):
  149. q = "./capture_image/" + name
  150. qqq = os.path.abspath(q)
  151. result = {}
  152. result["standard"] = {}
  153. if (float(re["1"]["val"]) < 40):
  154. result["standard"]["level"] = 1
  155. elif (float(re["1"]["val"]) < 70):
  156. result["standard"]["level"] = 2
  157. elif (float(re["1"]["val"]) < 100):
  158. result["standard"]["level"] = 3
  159. else:
  160. result["standard"]["level"] = 4
  161. r = "capture_image" + str(re["1"]["num"]) + ".png"
  162. a = os.path.join(qqq, r)
  163. result["standard"]["path"] = a
  164. return result
  165. def classify_result(video_path, re, mode):
  166. # video_path = "./video/demo1.mp4"
  167. path = video_path
  168. os.path.split(path)
  169. tur = os.path.split(path)
  170. name = tur[len(tur) - 1].split('.')[0]
  171. switch = {'jump': classify_jump,
  172. 'pingban': classify_pingban,
  173. 'juanfu': classify_juanfu,
  174. 'shendun': classify_shendun,
  175. 'gaotaitui': classify_gaotaitui,
  176. }
  177. choice = mode
  178. power = switch.get(choice, classify_jump)(video_path, re)
  179. return power
  180. def api_dyna(video_path, mode, ana=1):
  181. return classify_result(path, run(path, mode, ana), mode)
  182. if __name__ == '__main__':
  183. path = "./video/demo1.mp4"
  184. api_dyna(path, "jump", 0)
  185. # classify_result(path,run(path,"jump",0),"jump")
  186. path = "./video/juanfu.mp4"
  187. api_dyna(path, "juanfu", 0)
  188. # classify_result(path,run(path,"juanfu",0),"juanfu")
  189. path = "./video/pingban.mp4"
  190. api_dyna(path, "pingban", 0)
  191. # classify_result(path,run(path,"pingban",0),"pingban")
  192. path = "./video/gaotaitui.mp4"
  193. api_dyna(path, "gaotaitui", 0)
  194. # classify_result(path,run(path,"gaotaitui",0),"gaotaitui")
  195. path = "./video/shendun.mp4"
  196. api_dyna(path, "shendun", 0)
  197. '''
  198. os.path.split(path)
  199. tur=os.path.split(path)
  200. name=tur[len(tur)-1].split('.')[0]
  201. p=os.getcwd()
  202. q="./capture_image/"+name
  203. qqq=os.path.abspath(q)
  204. #print(qqq)
  205. r="capture_image"+"48"+".png"
  206. a=os.path.join(qqq,r)
  207. '''