Guest User

Untitled

a guest
Sep 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. import cv2, os
  4. import scipy
  5. from scipy import signal
  6. import csv
  7.  
  8.  
  9. input_source = "/home/stephen/Desktop/me.MP4"
  10. cap = cv2.VideoCapture(input_source)
  11. out = cv2.VideoWriter('/home/stephen/Desktop/test.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 60, (400,700))
  12. frame_number = 0
  13.  
  14. # there are 15 points in the skeleton
  15. # 0 head
  16. # 1 neck
  17. # 2, 5 shoulders
  18. # 3, 6 elbows
  19. # 4, 7 hands
  20. # 8, 11 hips
  21. # 9, 12 knees
  22. # 10, 13 ankles
  23. # 14 torso
  24.  
  25. pairs = [[0,1], #head to neck
  26. [1,2],[1,5], #neck to sholders
  27. [2,3],[5,6], #sholders to elbows
  28. [3,4],[6,7], #elbows to hands
  29. [1,14], #neck to torso
  30. [14,8],[14,11], #torso (14) to hips (8 and 11)
  31. [8,9],[11,12],#hips to knees
  32. [9,10],[12,13]]#knees to feet
  33.  
  34.  
  35. #get pose data - data is generated by open pose video
  36. df = pd.read_csv('/home/stephen/Desktop/swapped_body_parts.csv')
  37.  
  38. #smooth it out
  39. for i in range(30): df[str(i)] = signal.savgol_filter(df[str(i)], 5, 3)
  40.  
  41. frame_number = 0
  42. while cv2.waitKey(1000) < 0:
  43.  
  44. hasFrame, frame = cap.read()
  45. frameCopy = np.copy(frame)
  46. #frame = np.zeros_like(frame)
  47. #frame[:,:,:] = 123,123,123
  48. if not hasFrame: break
  49.  
  50. values = df.values[frame_number]
  51. values = np.array(values, int)
  52.  
  53. points = []
  54. points.append((values[0], values[1]))
  55. points.append((values[2], values[3]))
  56. points.append((values[4], values[5]))
  57. points.append((values[6], values[7]))
  58. points.append((values[8], values[9]))
  59. points.append((values[10], values[11]))
  60. points.append((values[12], values[13]))
  61. points.append((values[14], values[15]))
  62. points.append((values[16], values[17]))
  63. points.append((values[18], values[19]))
  64. points.append((values[20], values[21]))
  65. points.append((values[22], values[23]))
  66. points.append((values[24], values[25]))
  67. points.append((values[26], values[27]))
  68. points.append((values[28], values[29]))
  69.  
  70. # Draw Skeleton
  71. for pair in pairs:
  72. partA = pair[0]
  73. partB = pair[1]
  74. cv2.line(frame, points[partA], points[partB], (32, 255, 0), 2, lineType=cv2.LINE_AA)
  75. cv2.circle(frame, points[partA], 2, (0, 0, 255), thickness=-1, lineType=cv2.FILLED)
  76. cv2.circle(frame, points[partB], 2, (0, 0, 255), thickness=-1, lineType=cv2.FILLED)
  77.  
  78. cv2.imshow('Output-Skeleton', frame)
  79. out.write(frame)
  80. frame_number+=1
Add Comment
Please, Sign In to add comment