25 lines
846 B
Python
25 lines
846 B
Python
import cv2
|
|
import numpy as np
|
|
from PIL import Image
|
|
import torch
|
|
|
|
|
|
def tensor2pil_tt(t_image: torch.Tensor) -> Image:
|
|
return Image.fromarray(np.clip(255.0 * t_image.cpu().numpy().squeeze(), 0, 255).astype(np.uint8))
|
|
|
|
def apply_gaussian_blur(image_np, ksize=5, sigmaX=1.0):
|
|
if ksize % 2 == 0:
|
|
ksize += 1 # ksize must be odd
|
|
blurred_image = cv2.GaussianBlur(image_np, (ksize, ksize), sigmaX=sigmaX)
|
|
return blurred_image
|
|
|
|
def apply_guided_filter(image_np, radius, eps):
|
|
# Convert image to float32 for the guided filter
|
|
image_np_float = np.float32(image_np) / 255.0
|
|
# Apply the guided filter
|
|
filtered_image = cv2.ximgproc.guidedFilter(image_np_float, image_np_float, radius, eps)
|
|
# Scale back to uint8
|
|
filtered_image = np.clip(filtered_image * 255, 0, 255).astype(np.uint8)
|
|
return filtered_image
|
|
|