I am working on an image processing project where I need to enhance fine details in images while also reducing noise. The images are captured in low-light conditions and contain important intricate features that are crucial for analysis. However, they also suffer from a considerable amount of noise that affects the accuracy of subsequent algorithms.
I have tried using traditional denoising filters such as median filtering and Gaussian filtering, which help in reducing noise but unfortunately, they also blur the fine details that I want to preserve. On the other hand, when I attempt to enhance details using techniques like histogram equalization or unsharp masking, it tends to amplify the noise as well.
Here is a snippet of the code I have tried:
import cv2
import numpy as np
def enhance_details_and_reduce_noise(image):
# Reducing noise
denoised_image = cv2.medianBlur(image, 3)
# Enhancing details
kernel = np.array([[-1, -1, -1], [-1, 9, -1], [-1, -1, -1]]) # unsharp masking kernel
enhanced_image = cv2.filter2D(image, -1, kernel)
return denoised_image, enhanced_image
# Load the image
image = cv2.imread('input_image.jpg', cv2.IMREAD_GRAYSCALE)
# Process the image
denoised_image, enhanced_image = enhance_details_and_reduce_noise(image)
# Display the results
cv2.imshow('Denoised Image', denoised_image)
cv2.imshow('Enhanced Image', enhanced_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Unfortunately, this code does not achieve the desired result of simultaneously enhancing fine details while reducing noise effectively. The output images either have reduced noise but lack essential details or have enhanced details with amplified noise.
I am seeking suggestions on techniques or algorithms that can help me achieve both goals – enhancing fine details and reducing noise – without compromising each other. Any insights or alternative approaches would be greatly appreciated.
This paper proposes a novel and unified framework called SCENS
for simultaneous contrast enhancement and noise suppression in low-light images. It decomposes an observed low-light image into illumination, reflectance, and noise components. The illumination is estimated using the second-order total generalized variation to preserve spatial smoothness and overall structure, while the piecewise continuity and fine detail of reflectance are maintained by minimizing the residual of gradients between the reflectance and the scene.
PS: Accessing full-text articles from the IEEE Xplore Digital Library typically requires a subscription or membership.