I want to use unsharp mask
on a 16 Bit Image.
The Image has 640 x 480 Pixels
and is saved in a NumPy array.
I have done the following:
Gaussian filter
(three different methods)WightFaktor
to the original ImageBut it doesn´t really work.
Here is the Python code:
Gaussian1 = ndimage.filters.gaussian_filter(Image,sigma=10.0)
Gaussian2 = filters.gaussian_filter(Image,sigma=10.0)
Gaussian3 = cv2.GaussianBlur(Image,(9,9),sigmaX=10.0)
Mask1 = Image - Gaussian1
UnsharpImage = Image + (WightFaktor*Mask1)
To get an unsharp image using OpenCV
you need to use the addWeighted function as follows:
import cv2
image = cv2.imread("lenna.jpg")
gaussian_3 = cv2.GaussianBlur(image, (0, 0), 2.0)
unsharp_image = cv2.addWeighted(image, 1.5, gaussian_3, -0.5, 0, image)
cv2.imwrite("lenna_unsharp.jpg", unsharp_image)
Giving the following kind of result: