Filtr Wienera do redukcji szumów obrazu (odszumianie obrazu)


16

Staram się omijać działanie filtra Wienera w celu redukcji szumów obrazu. W moim przypadku najpierw użyję innego filtra redukującego szum, a następnie wykorzystam jego wynik jako przybliżenie charakterystyki szumu dla filtra Wienera.

Jeśli chodzi o informacje na temat filtra Wienera, uznałem następujący kod Matlab i opis za przydatne:

http://www.mathworks.co.uk/help/toolbox/images/f11-12251.html#f11-14272

i kilka innych dobrych linków, takich jak

http://blogs.mathworks.com/steve/2007/11/02/image-deblurring-wiener-filter/

Więc z perspektywy Matlaba widzę, jak korzystać z wbudowanej funkcji Matlab, ale chciałbym uzyskać bardziej podstawowe zrozumienie, niż tylko wywoływanie funkcji, ale jednocześnie wolę znaleźć coś bardziej strawnego niż wpis Wikipedii dotyczący filtrowania Wienera .

Czy ktoś zechce udzielić krótkiego wyjaśnienia na temat filtrowania Wienera?


2
przed udzieleniem odpowiedzi ... musisz podać swoje pochodzenie. znasz teorię procesów losowych? Bez znajomości teorii procesów losowych konkretne wyjaśnienie jest prawie niemożliwe.
Trevor Boyd Smith

Chyba, że ​​jesteś w porządku z bardziej wyjaśnionym machaniem ręką.
Trevor Boyd Smith

Dzięki za odpowiedzi. Tak, czuję się wystarczająco swobodnie z teorią losowego procesu, a moje doświadczenie związane jest z przetwarzaniem obrazu
trican

3
cóż ... jeśli masz losowe tło procesów, powinno być możliwe dobre wyjaśnienie. (teraz muszę znaleźć czas na napisanie dobrego wyjaśnienia.)
Trevor Boyd Smith

Dzięki Trevor! bardzo mile widziane - mile widziane byłyby nawet dobre wskazówki, które mogłyby mnie kopnąć we właściwym kierunku.
trican

Odpowiedzi:



11

Jest jeszcze inny wpis w Wikipedii dotyczący filtrowania Wienera, który bardziej pasuje do przetwarzania obrazu.

Podsumowując (i konwertuj na 2D), biorąc pod uwagę układ: gdzie

y(n,m)=h(n,m)x(n,m)+v(n,m)
  • oznacza splot,
  • to (nieznany) prawdziwy obraz,x
  • jest odpowiedzią impulsową liniowego filtra niezmiennego w czasie,h
  • jest addytywnym nieznanym szumem niezależnym od x , orazvx
  • to obserwowany obraz.y

Chcemy znaleźć filtra dekonwolucji tak, że można oszacować X w następujący sposób: x ( n , m ) = g ( n , m ) * r ( n , m ) , gdzie x jest oszacowanie Xsolx

x^(n,m)=sol(n,m)y(n,m)
x^x , która minimalizuje średnią błąd kwadratowy.

W dziedzinie częstotliwości funkcja przenoszenia , G wynosi: G ( ω 1 , ω 2 ) = H ( ω 1 , ω 2 ) S ( ω 1 , ω 2 )solsol gdzie

sol(ω1,ω2))=H.(ω1,ω2))S.(ω1,ω2))|H.(ω1,ω2))|2)S.(ω1,ω2))+N.(ω1,ω2))
  • jest transformatą Fouriera g , solsol
  • jest transformatą Fouriera h , H.h
  • jest średnią gęstością widmową mocy wejścia x , a S.x
  • jest średnią gęstością mocy widmowej szumu v .N.v

Równanie można zapisać ponownie jako: G ( ω 1 , ω 2 ) = 1sol

sol(ω1,ω2))=1H.(ω1,ω2))[|H.(ω1,ω2))|2)H.(ω1,ω2))|2)+N.(ω1,ω2))S.(ω1,ω2))]
H.

Wielkie dzięki za dokładną odpowiedź. Nie jestem pewien, jak mogę wykorzystać poprzedni etap odmowy w ramach powyższego wyjaśnienia? Ogólnie będę musiał usiąść i wymyślić, jak wziąć powyższe wyjaśnienie i je wdrożyć.
trikan

solyy

Przepraszam, jeśli nie byłem jasny, miałem na myśli to, że dla wiodących algorytmów redukcji szumów obrazu, takich jak SADCT lub BM3D ( cs.tut.fi/~foi/GCF-BM3D ). Przeprowadzany jest pierwszy etap redukcji szumów (poprzez SADCT lub filtrowanie 3d z dopasowaniem bloków dla tych dwóch wymienionych algorytmów), a wynik tego jest wykorzystywany jako przybliżenie dla drugiego stopnia, który wykorzystuje filtrowanie Wienera. Próbuję ominąć drugi etap filtrowania wienera, a zatem moje oryginalne pytanie.
trikan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.