Уменьшите значение K
.Вы должны поиграть с этим, пока не получите хорошие результаты.Если он слишком большой, он не фильтруется, если он слишком маленький, вы получаете сильные артефакты.
Если вы знаете дисперсию шума, вы можете использовать ее для оценки параметра регуляризации.В фильтре Винера постоянная K
является упрощением N/S
, где N
- мощность шума, а S
- мощность сигнала.Оба эти значения зависят от частоты.Мощность сигнала S
может быть оценена с помощью преобразования Фурье функции автокорреляции фильтруемого изображения.Мощность шума трудно оценить, но если у вас есть такая оценка (или вы знаете ее, потому что создали изображение с шумом синтетически), то вы можете включить это значение в уравнение.Обратите внимание, что это мощность шума, а не дисперсия шума.
В следующем коде используется DIPlib (интерфейс Python, который мы называем PyDIP) для демонстрации деконволюции Винера (отказ от ответственности: яАвтор).Я не думаю, что трудно преобразовать этот код в другие библиотеки.
import PyDIP as dip
image = dip.ImageRead('trui.ics');
kernel = dip.CreateGauss([3,3]).Pad(image.Sizes())
smooth = dip.ConvolveFT(image, kernel)
smooth = dip.GaussianNoise(smooth, 5.0) # variance = 5.0
H = dip.FourierTransform(kernel)
F = dip.FourierTransform(smooth)
S = dip.SquareModulus(F) # signal power estimate
N = dip.Image(5.0 * smooth.NumberOfPixels()) # noise power (has same value at all frequencies)
Hinv = dip.Conjugate(H) / ( dip.SquareModulus(H) + N / S )
out = dip.FourierTransform(F * Hinv, {"inverse", "real"})
Изображение smooth
выглядит следующим образом:
Изображение out
, полученное в результате деконволюции изображения выше, выглядит следующим образом:
Не ожидайте идеального результата,Член регуляризации препятствует совершенной обратной фильтрации, поскольку такая фильтрация настолько сильно усиливает шум, что затопляет сигнал и дает совершенно бесполезный выходной сигнал.Фильтр Винера находит золотую середину между устранением свертки и подавлением шума.
Документация DIPlib для WienerDeconvolution
объясняет некоторые из используемых уравнений.