Spaces:
Sleeping
Sleeping
| from PIL import Image | |
| import numpy as np | |
| # Alternative: Simple resize function using PIL directly | |
| def resize_image_simple(image_array, target_size): | |
| """ | |
| Simple resize function using PIL | |
| Args: | |
| image_array: Input image array (H, W, C) | |
| target_size: Tuple (height, width) | |
| Returns: | |
| Resized image array | |
| """ | |
| # Ensure image is in correct format | |
| if image_array.max() <= 1: | |
| image_array = (image_array * 255).astype(np.uint8) | |
| # Convert to PIL Image | |
| image_pil = Image.fromarray(image_array) | |
| # Resize (PIL uses width, height format) | |
| resized_pil = image_pil.resize((target_size[1], target_size[0]), Image.LANCZOS) | |
| # Convert back to numpy array and normalize back to [0, 1] | |
| resized_array = np.array(resized_pil).astype(np.float32) / 255.0 | |
| return resized_array | |
| def resize_image_optimized(image_array, target_size): | |
| """ | |
| Resize image to target size with memory optimization | |
| Args: | |
| image_array: Input image array (H, W, C) | |
| target_size: Tuple (height, width) representing target dimensions | |
| Returns: | |
| Resized image array | |
| """ | |
| # Convert numpy array to PIL Image | |
| if image_array.dtype != np.uint8: | |
| # Convert to uint8 if not already | |
| if image_array.max() <= 1: | |
| image_array = (image_array * 255).astype(np.uint8) | |
| else: | |
| image_array = image_array.astype(np.uint8) | |
| image_pil = Image.fromarray(image_array) | |
| # Resize image (PIL uses (width, height) format) | |
| resized_pil = image_pil.resize((target_size[1], target_size[0]), Image.LANCZOS) | |
| # Convert back to numpy array | |
| result = np.array(resized_pil) | |
| # Clean up | |
| image_pil.close() | |
| resized_pil.close() | |
| return result | |