File size: 772 Bytes
417086a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import cv2 
import numpy as np
from PIL import Image

def sr_interpolation(img: Image.Image, method='nearest', scale=2) -> Image.Image:
    """
    TODO: Implement Nearest/Bilinear/Bicubic/Edge-directed interpolation.
    """
    img = np.array(img)
    if method == 'nearest':
        inter = cv2.INTER_NEAREST
    elif method == 'bilinear':
        inter = cv2.INTER_LINEAR
    elif method == 'bicubic':
        inter = cv2.INTER_CUBIC
    elif method == 'lanczos':
        inter = cv2.INTER_LANCZOS4
    else:
        raise ValueError(f"Invalid method for interpolation {method}")
        # return Image._fromarray(img)
    
    h, w = img.shape[:2]
    out = cv2.resize(img, (w * scale, h * scale), interpolation=inter)
    return out
    # return Image.fromarray(out)