Я пробовал использовать традиционные фильтры шумоподавления, такие как медианная фильтрация и фильтрация Гаусса, которые помогают снизить шум. но, к сожалению, они также размывают мелкие детали, которые я хочу сохранить. С другой стороны, когда я пытаюсь улучшить детализацию с помощью таких методов, как выравнивание гистограммы или нерезкая маскировка, это также имеет тенденцию усиливать шум.
Вот фрагмент кода, который я пробовал. :
Код: Выделить всё
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()
Мне нужны предложения по методам или алгоритмам, которые могут помочь мне достичь обеих целей: улучшить мелкие детали и улучшить качество изображения. снижение шума – без ущерба друг для друга. Мы будем очень признательны за любые идеи или альтернативные подходы.
Подробнее здесь: https://stackoverflow.com/questions/767 ... ltaneously