Spaces:
Running
Running
import cv2 | |
import numpy as np | |
def spline_upscale(image, scale_factor=4): | |
""" | |
Upscale image using Bicubic spline interpolation | |
Args: | |
image: Input image (numpy array or file path) | |
scale_factor: Scaling multiplier (default=4) | |
Returns: | |
Upscaled image as numpy array (uint8) | |
""" | |
# Load image if path provided | |
if isinstance(image, str): | |
img = cv2.imread(image) | |
if img is None: | |
raise ValueError(f"Could not load image from {image}") | |
else: | |
img = image.copy() | |
# Get original dimensions | |
h, w = img.shape[:2] | |
# Calculate new dimensions | |
new_w = int(w * scale_factor) | |
new_h = int(h * scale_factor) | |
# Perform bicubic interpolation | |
upscaled = cv2.resize(img, (new_w, new_h), interpolation=cv2.INTER_CUBIC) | |
return upscaled |