CXR-Findings-AI / utils /processing.py
manu02's picture
Upload 4 files
65cc576
raw
history blame contribute delete
810 Bytes
import torchvision.transforms as T
import fsspec
import io
from PIL import Image
def image_transform(img_size=512):
return T.Compose([
T.Resize((img_size, img_size), interpolation=T.InterpolationMode.BICUBIC),
T.ToTensor(),
T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
def open_binary(path: str):
"""
Open any (local or gs://) file for binary reading.
Returns a file-like object (context manager).
"""
return fsspec.open(path, mode="rb").open()
def pil_from_path(path: str) -> Image.Image:
"""
Load an image from local or GCS; returns a PIL image in RGB.
"""
with open_binary(path) as f:
img_bytes = f.read()
im = Image.open(io.BytesIO(img_bytes)).convert("RGB")
return im