UnsharpMask
Sharpen the input image using Unsharp Masking processing and overlays the result with the original image.
Unsharp masking is a technique that enhances edge contrast in an image, creating the illusion of increased sharpness. This transform applies Gaussian blur to create a blurred version of the image, then uses this to create a mask which is combined with the original image to enhance edges and fine details.
blur_limitmaximum Gaussian kernel size for blurring the input image.
Must be zero or odd and in range [0, inf). If set to 0 it will be computed from sigma
as round(sigma * (3 if img.dtype == np.uint8 else 4) * 2 + 1) + 1.
If set single value blur_limit will be in range (0, blur_limit).
Default: (3, 7).
sigma_limitGaussian kernel standard deviation. Must be more or equal to 0.
If set single value sigma_limit will be in range (0, sigma_limit).
If set to 0 sigma will be computed as sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8. Default: 0.
alpharange to choose the visibility of the sharpened image. At 0, only the original image is visible, at 1.0 only its sharpened version is visible. Default: (0.2, 0.5).
thresholdValue to limit sharpening only for areas with high pixel difference between original image and it's smoothed version. Higher threshold means less sharpening on flat areas. Must be in range [0, 255]. Default: 10.
pprobability of applying the transform. Default: 0.5.
>>> import numpy as np
>>> import albumentations as A
>>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8)
>>>
# Apply UnsharpMask with default parameters
>>> transform = A.UnsharpMask(p=1.0)
>>> sharpened_image = transform(image=image)['image']
>>>
# Apply UnsharpMask with custom parameters
>>> transform = A.UnsharpMask(
... blur_limit=(3, 7),
... sigma_limit=(0.1, 0.5),
... alpha=(0.2, 0.7),
... threshold=15,
... p=1.0
... )
>>> sharpened_image = transform(image=image)['image']- The algorithm creates a mask M = (I - G) * alpha, where I is the original image and G is the Gaussian blurred version.
- The final image is computed as: output = I + M if |I - G| > threshold, else I.
- Higher alpha values increase the strength of the sharpening effect.
- Higher threshold values limit the sharpening effect to areas with more significant edges or details.
- The blur_limit and sigma_limit parameters control the Gaussian blur used to create the mask.
- Unsharp Maskinghttps://en.wikipedia.org/wiki/Unsharp_masking