Spaces:
Runtime error
Runtime error
| import cv2 | |
| import numpy as np | |
| def upsample_lancros(image_x,scale=4): | |
| h, w = image_x.shape[:2] | |
| new_w, new_h = int(w * scale), int(h * scale) | |
| # Upsample using Lanczos interpolation | |
| pred = cv2.resize(image_x, (new_w, new_h), interpolation=cv2.INTER_LANCZOS4) | |
| return pred | |
| # def lanczos_kernel(x, a): | |
| # """Lanczos kernel function.""" | |
| # if x == 0: | |
| # return 1 | |
| # elif -a < x < a: | |
| # return a * np.sinc(x) * np.sinc(x / a) | |
| # else: | |
| # return 0 | |
| # def upsample_lancros_2(image, scale=4, a=3): | |
| # """ | |
| # Upsample an image using Lanczos interpolation. | |
| # Parameters: | |
| # image: numpy array (grayscale or RGB) | |
| # scale: scaling factor (default 4x) | |
| # a: size of Lanczos window (default 3) | |
| # Returns: | |
| # Upsampled image as numpy array. | |
| # """ | |
| # if image.ndim == 2: # Grayscale | |
| # h, w = image.shape | |
| # channels = 1 | |
| # else: # RGB | |
| # h, w, channels = image.shape | |
| # new_h, new_w = int(h * scale), int(w * scale) | |
| # output = np.zeros((new_h, new_w, channels)) if channels > 1 else np.zeros((new_h, new_w)) | |
| # for y_new in range(new_h): | |
| # for x_new in range(new_w): | |
| # print(y_new,x_new) | |
| # # Map new pixel to original image space | |
| # x_orig = x_new / scale | |
| # y_orig = y_new / scale | |
| # x0 = int(np.floor(x_orig)) | |
| # y0 = int(np.floor(y_orig)) | |
| # # Accumulators | |
| # pixel = np.zeros(channels) if channels > 1 else 0.0 | |
| # norm = 0.0 | |
| # for j in range(y0 - a + 1, y0 + a + 1): | |
| # for i in range(x0 - a + 1, x0 + a + 1): | |
| # if 0 <= i < w and 0 <= j < h: | |
| # wx = lanczos_kernel(x_orig - i, a) | |
| # wy = lanczos_kernel(y_orig - j, a) | |
| # weight = wx * wy | |
| # if channels > 1: | |
| # pixel += image[j, i] * weight | |
| # else: | |
| # pixel += image[j, i] * weight | |
| # norm += weight | |
| # if norm > 0: | |
| # output[y_new, x_new] = pixel / norm | |
| # if channels == 1: | |
| # output = output.astype(image.dtype) | |
| # else: | |
| # output = output.clip(0, 255).astype(image.dtype) | |
| # return output |