pi-cnn-model / app /utils /image_processing.py
nbintang
fix: new model lagi
a288397
Raw
History Blame Contribute Delete
1.03 kB
import albumentations as A
import io
import numpy as np
from PIL import Image, UnidentifiedImageError
from fastapi import HTTPException
val_test_transform = A.Compose([
A.Resize(224, 224),
A.Normalize(),
])
async def pre_process_image(image_data: bytes):
try:
pil_image = Image.open(io.BytesIO(image_data)).convert("RGB")
original_width, original_height = pil_image.size
np_image = np.array(pil_image)
augmented = val_test_transform(image=np_image)
img_array = augmented["image"]
img_array = np.expand_dims(img_array, axis=0).astype(np.float32)
processed_image_dimensions = img_array.shape[1:]
return img_array, original_width, original_height, processed_image_dimensions
except UnidentifiedImageError as e:
raise HTTPException(status_code=400, detail=f"Cannot identify image file. Please upload a valid image. Error: {e}")
except Exception as e:
raise HTTPException(status_code=400, detail=f"Image processing failed: {e}")