#python #scipy #wiener-filter
#python #scipy #wiener-filter
Вопрос:
Я пытаюсь реализовать фильтр Винера в наборе данных CIFAR10, который состоит из изображений RGB.
Но этот фильтр можно использовать только для изображений с серым оттенком.
Я попытался реализовать это на каждом канале R / G / B, а затем объединить их, но результирующее изображение RGB даже близко не соответствовало исходному изображению.
Есть идеи?
(Я использую scipy.signal.signaltools.wiener)
Заранее спасибо
Ответ №1:
Хорошо, как насчет skimage (scikit-image)? Взгляните сюда: https://scikit-image.org/docs/dev/api/skimage.restoration.html#skimage.restoration .wiener
Пример, приведенный на изображении rgb, следующий:
from skimage import color, data, restoration
img = color.rgb2gray(data.astronaut())
from scipy.signal import convolve2d
psf = np.ones((5, 5)) / 25
img = convolve2d(img, psf, 'same')
img = 0.1 * img.std() * np.random.standard_normal(img.shape)
deconvolved_img = restoration.wiener(img, psf, 1100)