Spaces:
Runtime error
Runtime error
| # Copyright (c) OpenMMLab. All rights reserved. | |
| from typing import TYPE_CHECKING, Tuple | |
| if TYPE_CHECKING: | |
| from matplotlib.figure import Figure | |
| def get_adaptive_scale(img_shape: Tuple[int, int], | |
| min_scale: float = 0.3, | |
| max_scale: float = 3.0) -> float: | |
| """Get adaptive scale according to image shape. | |
| The target scale depends on the the short edge length of the image. If the | |
| short edge length equals 224, the output is 1.0. And output linear scales | |
| according the short edge length. | |
| You can also specify the minimum scale and the maximum scale to limit the | |
| linear scale. | |
| Args: | |
| img_shape (Tuple[int, int]): The shape of the canvas image. | |
| min_size (int): The minimum scale. Defaults to 0.3. | |
| max_size (int): The maximum scale. Defaults to 3.0. | |
| Returns: | |
| int: The adaptive scale. | |
| """ | |
| short_edge_length = min(img_shape) | |
| scale = short_edge_length / 224. | |
| return min(max(scale, min_scale), max_scale) | |
| def create_figure(*args, margin=False, **kwargs) -> 'Figure': | |
| """Create a independent figure. | |
| Different from the :func:`plt.figure`, the figure from this function won't | |
| be managed by matplotlib. And it has | |
| :obj:`matplotlib.backends.backend_agg.FigureCanvasAgg`, and therefore, you | |
| can use the ``canvas`` attribute to get access the drawn image. | |
| Args: | |
| *args: All positional arguments of :class:`matplotlib.figure.Figure`. | |
| margin: Whether to reserve the white edges of the figure. | |
| Defaults to False. | |
| **kwargs: All keyword arguments of :class:`matplotlib.figure.Figure`. | |
| Return: | |
| matplotlib.figure.Figure: The created figure. | |
| """ | |
| from matplotlib.backends.backend_agg import FigureCanvasAgg | |
| from matplotlib.figure import Figure | |
| figure = Figure(*args, **kwargs) | |
| FigureCanvasAgg(figure) | |
| if not margin: | |
| # remove white edges by set subplot margin | |
| figure.subplots_adjust(left=0, right=1, bottom=0, top=1) | |
| return figure | |