emotion-fusion-api / face_module /image_utils.py
cagedsheep's picture
Initial deploy: emotion fusion API with Docker
41e6846 verified
Raw
History Blame Contribute Delete
714 Bytes
from __future__ import annotations
from pathlib import Path
from typing import Any
import numpy as np
from PIL import Image
def image_to_rgb_array(image: Any) -> np.ndarray | str:
"""Convert common image inputs to a DeepFace-friendly RGB array or path."""
if isinstance(image, (str, Path)):
return str(image)
if isinstance(image, Image.Image):
return np.asarray(image.convert("RGB"))
if isinstance(image, np.ndarray):
if image.ndim == 2:
return np.stack([image] * 3, axis=-1)
if image.ndim == 3 and image.shape[-1] == 4:
return image[:, :, :3]
return image
raise TypeError(f"Unsupported image input type: {type(image)!r}")