Spaces:
Build error
Build error
import numpy.typing as npt | |
from numpy import uint8 | |
import numpy as np | |
ImageType = npt.NDArray[uint8] | |
from typing import Tuple, List, Sequence, Optional, Union | |
import cv2 | |
from PIL import Image | |
from PIL import ImageEnhance | |
def denoisingAndSharpening(images:List[ImageType]): | |
new_images = [] | |
for img in images: | |
# Apply fastNlMeansDenoisingColored | |
# Parameters: | |
# - img: The input 8-bit 3-channel image. | |
# - None: The output image (in-place if None is passed). | |
# - h: Parameter regulating filter strength for luminance component. Higher h value removes noise better but also removes image details (10 is a good default value). | |
# - hForColorComponents: The same as h but for color images only. For most images, 10 will be a good value. | |
# - templateWindowSize: Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value is 7. | |
# - searchWindowSize: Size in pixels of the window that is used to compute a weighted average for the given pixel. Should be odd. Recommended value is 21. | |
h = 10 | |
hForColorComponents = 10 | |
templateWindowSize = 7 | |
searchWindowSize = 21 | |
img = cv2.fastNlMeansDenoisingColored(np.array(img), None, h, hForColorComponents, templateWindowSize, searchWindowSize) | |
#cv2.imwrite(debug_folder+"denoisedAndHigherContrast.png",img) | |
img = Image.fromarray(img).convert('RGB') | |
enhancer = ImageEnhance.Contrast(img) | |
img = enhancer.enhance(2) # Increase contrast by a factor of 2 | |
new_images.append(img) | |
return new_images |