1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import random
- import math
- class LoopPadding(object):
- def __init__(self, size):
- self.size = size
- def __call__(self, frame_indices):
- out = frame_indices
- for index in out:
- if len(out) >= self.size:
- break
- out.append(index)
- return out
- class TemporalCenterCrop(object):
- """Temporally crop the given frame indices at a center.
- If the number of frames is less than the size,
- loop the indices as many times as necessary to satisfy the size.
- Args:
- size (int): Desired output size of the crop.
- """
- def __init__(self, size):
- self.size = size
- def __call__(self, frame_indices):
- """
- Args:
- frame_indices (list): frame indices to be cropped.
- Returns:
- list: Cropped frame indices.
- """
- center_index = len(frame_indices) // 2
- begin_index = max(0, center_index - (self.size // 2))
- end_index = min(begin_index + self.size, len(frame_indices))
- out = frame_indices[begin_index:end_index]
- for index in out:
- if len(out) >= self.size:
- break
- out.append(index)
- return out
|