Spaces:
Runtime error
Runtime error
# Copyright (c) OpenMMLab. All rights reserved. | |
from typing import Optional | |
import numpy as np | |
from mmcv.transforms import LoadImageFromFile | |
from mmpose.registry import TRANSFORMS | |
class LoadImage(LoadImageFromFile): | |
"""Load an image from file or from the np.ndarray in ``results['img']``. | |
Required Keys: | |
- img_path | |
- img (optional) | |
Modified Keys: | |
- img | |
- img_shape | |
- ori_shape | |
- img_path (optional) | |
Args: | |
to_float32 (bool): Whether to convert the loaded image to a float32 | |
numpy array. If set to False, the loaded image is an uint8 array. | |
Defaults to False. | |
color_type (str): The flag argument for :func:``mmcv.imfrombytes``. | |
Defaults to 'color'. | |
imdecode_backend (str): The image decoding backend type. The backend | |
argument for :func:``mmcv.imfrombytes``. | |
See :func:``mmcv.imfrombytes`` for details. | |
Defaults to 'cv2'. | |
backend_args (dict, optional): Arguments to instantiate the preifx of | |
uri corresponding backend. Defaults to None. | |
ignore_empty (bool): Whether to allow loading empty image or file path | |
not existent. Defaults to False. | |
""" | |
def transform(self, results: dict) -> Optional[dict]: | |
"""The transform function of :class:`LoadImage`. | |
Args: | |
results (dict): The result dict | |
Returns: | |
dict: The result dict. | |
""" | |
if 'img' not in results: | |
# Load image from file by :meth:`LoadImageFromFile.transform` | |
results = super().transform(results) | |
else: | |
img = results['img'] | |
assert isinstance(img, np.ndarray) | |
if self.to_float32: | |
img = img.astype(np.float32) | |
if 'img_path' not in results: | |
results['img_path'] = None | |
results['img_shape'] = img.shape[:2] | |
results['ori_shape'] = img.shape[:2] | |
return results | |