Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. lvl_refs = [ref_img]
  2. lvl_frames = [frame_img]
  3. lvl_refs.append(cv2.pyrDown(cv2.blur(lvl_refs[0], ksize=(3, 3))))
  4. lvl_frames.append(cv2.pyrDown(cv2.blur(lvl_frames[0], ksize=(3, 3))))
  5. lvl_refs.append(cv2.pyrDown(cv2.blur(lvl_refs[1], ksize=(3, 3))))
  6. lvl_frames.append(cv2.pyrDown(cv2.blur(lvl_frames[1], ksize=(3, 3))))
  7.  
  8. d_min = math.inf
  9. d_min_i = d_min_j = -1
  10. p_tmp = round(p/4.0)
  11. center_x = math.floor(previous_match_x/4.0)
  12. center_y = math.floor(previous_match_y/4.0)
  13. for i in range(center_y - p_tmp, center_y + p_tmp + 1):
  14. for j in range(center_x - p_tmp, center_x + p_tmp + 1):
  15. I_ = lvl_frames[2].shape[0]
  16. J_ = lvl_frames[2].shape[1]
  17. M_ = lvl_refs[2].shape[0]
  18. N_ = lvl_refs[2].shape[1]
  19. if i < 0 or j < 0 or i >= I_ - M_ or j >= J_ - N_:
  20. continue
  21. d = distance(lvl_refs[2], lvl_frames[2], lvl_refs[2].shape[0], lvl_refs[2].shape[1], i, j)
  22. if d < d_min:
  23. d_min = d
  24. d_min_i = i
  25. d_min_j = j
  26. y1 = d_min_i
  27. x1 = d_min_j
  28.  
  29. d_min = math.inf
  30. p_tmp = 1
  31. center_x = math.floor(previous_match_x/2.0 + 2*x1)
  32. center_y = math.floor(previous_match_y/2.0 + 2*y1)
  33. for i in range(center_y - p_tmp, center_y + p_tmp + 1):
  34. for j in range(center_x - p_tmp, center_x + p_tmp + 1):
  35. I_ = lvl_frames[1].shape[0]
  36. J_ = lvl_frames[1].shape[1]
  37. M_ = lvl_refs[1].shape[0]
  38. N_ = lvl_refs[1].shape[1]
  39. if i < 0 or j < 0 or i >= I_ - M_ or j >= J_ - N_:
  40. continue
  41. d = distance(lvl_refs[1], lvl_frames[1], lvl_refs[1].shape[0], lvl_refs[1].shape[1], i, j)
  42. if d < d_min:
  43. d_min = d
  44. d_min_i = i
  45. d_min_j = j
  46. y2 = d_min_i
  47. x2 = d_min_j
  48.  
  49. d_min = math.inf
  50. p_tmp = 1
  51. center_x = math.floor(previous_match_x + 2 * x2)
  52. center_y = math.floor(previous_match_y + 2 * y2)
  53. for i in range(center_y - p_tmp, center_y + p_tmp + 1):
  54. for j in range(center_x - p_tmp, center_x + p_tmp + 1):
  55. I_ = lvl_frames[0].shape[0]
  56. J_ = lvl_frames[0].shape[1]
  57. M_ = lvl_refs[0].shape[0]
  58. N_ = lvl_refs[0].shape[1]
  59. if i < 0 or j < 0 or i >= I_ - M_ or j >= J_ - N_:
  60. continue
  61. d = distance(lvl_refs[0], lvl_frames[0], lvl_refs[0].shape[0], lvl_refs[0].shape[1], i, j)
  62. if d < d_min:
  63. d_min = d
  64. d_min_i = i
  65. d_min_j = j
  66. previous_match_y = d_min_i
  67. previous_match_x = d_min_j
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement