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 |