classify.py 7.1 KB

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