filenames.sort(key=get_int)

dict_keys = []
groups = defaultdict(list)
for f in filenames:
    if ".pkl" in f:
        continue
    frame_id = f.split("_")[1]
    if not frame_id in dict_keys:
        dict_keys.append(frame_id)
    groups[frame_id].append(f)

n_frames = len(groups)

tracker = Tracker()
tracker.fillFrames(n_frames, dict_keys)

# Generate bounding boxes ------------------------------------------
for f in range(0, n_frames):
    key = dict_keys[f]
    frame = tracker.getFrame(f)
    #img_diff = cv2.imread("differences/anim_{id}_2k_diff.png".format(id=key))
    #img = np.zeros_like(img_diff)
    #img = cv2.add(img, img_diff)
    for c in range(0, len(groups[key])):
        mask = cv2.imread(dir_path + groups[key][c], cv2.IMREAD_GRAYSCALE)
        contours = cv2.findContours(mask, 2, 2)[1][0]
        #x, y, w, h = cv2.boundingRect(contours)
        #img = cv2.rectangle(img, (x, y), (x+w, y+h), (0,255,0), 2)
        frame.appendObject(cv2.boundingRect(contours))
    #cv2.imwrite("bboxes/{id}.png".format(id=key), img)