| import numpy as np |
| from functools import partial |
| from six.moves import map, zip |
|
|
|
|
| def multi_apply(func, *args, **kwargs): |
| """Apply function to a list of arguments. |
| Note: |
| This function applies the ``func`` to multiple inputs and |
| map the multiple outputs of the ``func`` into different |
| list. Each list contains the same type of outputs corresponding |
| to different inputs. |
| Args: |
| func (Function): A function that will be applied to a list of |
| arguments |
| Returns: |
| tuple(list): A tuple containing multiple list, each list contains \ |
| a kind of returned results by the function |
| """ |
| pfunc = partial(func, **kwargs) if kwargs else func |
| map_results = map(pfunc, *args) |
| return tuple(map(list, zip(*map_results))) |
|
|
|
|
| def mask2box(mask): |
| ys, xs = np.where(mask) |
| y0, y1 = ys.min(), ys.max() |
| x0, x1 = xs.min(), xs.max() |
|
|
| return x0, y0, x1, y1 |
|
|