From db8b97f859411a18ed6692f1684e2d6c4bf9b2da Mon Sep 17 00:00:00 2001 From: Jordan Thompson Date: Wed, 9 Aug 2023 23:40:27 -0700 Subject: [PATCH] Pad Lucy Sharpen --- WAS_Node_Suite.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/WAS_Node_Suite.py b/WAS_Node_Suite.py index 2f17e9d..bf1faba 100644 --- a/WAS_Node_Suite.py +++ b/WAS_Node_Suite.py @@ -2861,21 +2861,25 @@ class WAS_Lucy_Sharpen: def lucy_sharpen(self, image, iterations=10, kernel_size=3): from scipy.signal import convolve2d - + image_array = np.array(image, dtype=np.float32) / 255.0 kernel = np.ones((kernel_size, kernel_size), dtype=np.float32) / (kernel_size ** 2) sharpened_channels = [] - for channel in range(3): + for channel in range(3): channel_array = image_array[:, :, channel] for _ in range(iterations): - blurred_channel = convolve2d(channel_array, kernel, mode='same', boundary='wrap') + padded_channel = np.pad(channel_array, kernel_size // 2, mode='edge') + + blurred_channel = convolve2d(padded_channel, kernel, mode='valid') ratio = channel_array / (blurred_channel + 1e-6) - channel_array *= convolve2d(ratio, kernel, mode='same', boundary='wrap') + + padded_ratio = np.pad(ratio, kernel_size // 2, mode='edge') + channel_array *= convolve2d(padded_ratio, kernel, mode='valid') sharpened_channels.append(channel_array) - + sharpened_image_array = np.stack(sharpened_channels, axis=-1) sharpened_image_array = np.clip(sharpened_image_array * 255.0, 0, 255).astype(np.uint8) sharpened_image = Image.fromarray(sharpened_image_array)