Wiener Filter สำหรับลดสัญญาณรบกวนภาพ (Denoising ภาพ)


16

ฉันพยายามทำให้การทำงานของตัวกรอง Wiener เป็นไปโดยรอบเพื่อจุดประสงค์ในการลดสัญญาณรบกวนภาพ ในกรณีของฉันฉันจะใช้ตัวกรองลดเสียงรบกวนอื่นก่อนแล้วจึงจะใช้ผลลัพธ์ของสิ่งนี้เป็นการประมาณลักษณะเสียงของตัวกรอง Wiener

เกี่ยวกับข้อมูลเกี่ยวกับตัวกรอง Wiener ฉันพบว่ารหัส Matlab และคำอธิบายต่อไปนี้มีประโยชน์:

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

และลิงก์ที่ดีอื่น ๆ เช่น

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

ดังนั้นจากมุมมอง Matlab ฉันสามารถเห็นวิธีการใช้ฟังก์ชั่น inbuilt Matlab แต่ฉันต้องการความเข้าใจขั้นพื้นฐานมากกว่าแค่ใช้การเรียกใช้ฟังก์ชั่น แต่ในเวลาเดียวกันฉันต้องการค้นหาสิ่งที่ย่อยได้มากกว่ารายการวิกิพีเดีย Wiener กรอง

ใครสนใจที่จะเสนอคำอธิบายสั้น ๆ เกี่ยวกับการกรอง Wiener


2
ก่อนที่จะได้รับคำตอบ ... คุณต้องระบุว่าพื้นหลังของคุณคืออะไร คุณรู้ทฤษฎีกระบวนการสุ่มหรือไม่ ทฤษฎีกระบวนการแบบสุ่มโดยไม่รู้ตัวให้คำอธิบายที่เป็นรูปธรรมเป็นไปไม่ได้เกือบ
เทรเวอร์บอยด์สมิ ธ

ถ้าคุณไม่โอเคพร้อมกับโบกมืออธิบายเพิ่มเติม
เทรเวอร์บอยด์สมิ ธ

ขอบคุณสำหรับคำตอบ ใช่ฉันพอสบายกับทฤษฎีกระบวนการสุ่มและพื้นหลังของฉันอยู่ในการประมวลผลภาพ
TRICAN

3
ดี ... หากคุณมีพื้นหลังกระบวนการแบบสุ่มคุณควรให้คำอธิบายที่ดี (ตอนนี้ฉันต้องการหาเวลาเพื่อเขียนคำอธิบายที่ดี)
Trevor Boyd Smith

ขอบคุณเทรเวอร์! ชื่นชมมาก - แม้แต่ตัวชี้ที่ดีที่จะเตะฉันไปในทิศทางที่ถูกต้องก็จะได้รับการชื่นชมมาก
trican

คำตอบ:


5

สิ่งที่คุณกำลังค้นหาคือข้อมูลเกี่ยวกับการกรอง Weiner เชิงประจักษ์ [1,2] BM3D folks ใช้ตัวกรอง Weiner เพื่อปรับพารามิเตอร์ของขั้นตอนแรกของการ denoising โดยเฉพาะเพื่อเลือกเกณฑ์ที่จะกำจัดสัมประสิทธิ์ขนาดเล็กของการแปลง 3 มิติของพวกเขา

[1] Denoising เวฟที่ได้รับการปรับปรุงผ่านการกรองแบบประจบประแจง

[2] http://dune.ece.wisc.edu/pdfs/gallaire_tfts_wieny98.pdf


11

มีรายการ Wikipedia อีกรายการหนึ่งเกี่ยวกับการกรอง Wiener ที่ใช้บังคับกับการประมวลผลรูปภาพได้มากขึ้น

เพื่อสรุป (และแปลงเป็น 2D), กำหนดระบบ: โดยที่

y(n,m)=h(n,m)x(n,m)+v(n,m)
  • หมายถึงการบิด
  • คือรูปภาพจริง (ไม่ทราบ)x
  • คือการตอบสนองแบบอิมพัลส์ของตัวกรองแบบเชิงเส้นและไม่แปรเปลี่ยนเวลาh
  • คือเสียงที่ไม่รู้จักเพิ่มเติมซึ่งเป็นอิสระจาก x , และvx
  • คือภาพที่สังเกตy

gx

x^(n,m)=g(n,m)y(n,m)
x^x

gG

G(ω1,ω2)=H(ω1,ω2)S(ω1,ω2)|H(ω1,ω2)|2S(ω1,ω2)+N(ω1,ω2)
where
  • G is the Fourier transform of g,
  • H is the Fourier transform of h,
  • S is the mean power spectral density of the input x, and
  • N is the mean power spectral density of the noise v.

The equation for G can be re-written as:

G(ω1,ω2)=1H(ω1,ω2)[|H(ω1,ω2)|2H(ω1,ω2)|2+N(ω1,ω2)S(ω1,ω2)]
So the Wiener filter has the inverse filter for H, but also a frequency-dependent term that attenuates the gain based on the signal to noise ratio.

Many thanks for your thorough response. I'm not clear how can I use the previous stage of denoising within the above explanation? Overall I'll need to sit down and figure out how to take the above explanation and implement it.
trican

@trican: I'm not sure what you mean by "previous stage"? There's really only one stage: gy. The formulation of y is just a mathematical model of how you arrive at the image you have, it involves no processing (except image acquisition), and may not be very close to the reality of how you get the image.
Peter K.

Sorry if I wasn't clear, what I meant is that for leading image noise reduction algortihms such as SADCT or BM3D ( cs.tut.fi/~foi/GCF-BM3D). A first stage of noise reduction is carried out (via SADCT or block matching 3d filtering for those two mentioned algorithms) and the result of this is used as an approximation for the secondary stage which employs wiener filtering. I'm trying to get my head around the secondary wiener filtering stage, thus my original question.
trican
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.