การแปลงเวฟเล็ตที่ไม่ถูกทำลายบนภาพโดยใช้ Matlab

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

ฟังก์ชั่นที่ผมใช้ในโปรแกรมคือ

WTSource = ndwt2(Source, n, 'db1');

โดยที่ Source คืออิมเมจอินพุต n คือระดับของทรานสฟอร์มาติโน และใช้ 'db1' หรือการแปลง Haar เพื่อสร้างอิมเมจ

ฉันคิดว่า WTSource.dec เป็นรูปภาพผลลัพธ์ แต่ฉันพบว่าขนาดขององค์ประกอบใน WTSource.dec แตกต่างจากรูปภาพอินพุต และเมื่อ n เพิ่มขึ้น ภาพก็ใหญ่ขึ้น ดังนั้นฉันจึงสงสัยว่าฉันจะได้รับภาพผลลัพธ์ของการเปลี่ยนแปลงเพื่อใช้ต่อไปได้อย่างไร


person Timothy    schedule 04.04.2013    source แหล่งที่มา


คำตอบ (1)


หากคุณดูเอกสาร
http://www.mathworks.nl/help/wavelet/ref/ndwt2.html
หลังจากคำสั่งของคุณ:

 WTSource= ndwt2(Source,n,'db1');

เอาต์พุต WTSource คือบันทึกที่มีฟิลด์ dec ซึ่งมีฟิลด์เหล่านั้นทั้งหมด

ธันวาคม{ 1 } ระดับการประมาณ n
ธันวาคม{2 : 4} ระดับรายละเอียด n-1 (ช่องสัญญาณ LH, HL, HH)
ธันวาคม{5 : 7} ระดับรายละเอียด n-2 (ช่องสัญญาณ LH, HL, HH )
...
ธ.ค.{3n-1 : 3n+1}รายละเอียดระดับ 1 (ช่อง LH, HL, HH)

แต่ละองค์ประกอบของ dec มีขนาดเท่ากันกับรูปภาพที่คุณป้อน

ดูเพิ่มเติมที่:
http://www.mathworks.nl/products/wavelet/examples.html?file=/products/demos/shipping/wavelet/ndwtdemo.html

person alle_meije    schedule 10.04.2013
comment
ขอบคุณที่ช่วยฉัน อย่างไรก็ตาม ฉันยังพบว่าขนาดแตกต่างกัน ตัวอย่างเช่น ในการสาธิต 'การสลายตัวของเวฟเล็ตแบบไม่ทำลาย 1-D หลายระดับ' ที่คุณระบุ เราจะเห็นว่าในโครงสร้าง WT สมาชิก 'longs' คือ [984 984 983 982 981 980 979] เมื่อรูปภาพถือเป็นอินพุต ขนาดก็จะแตกต่างกันเช่นกัน ฉันยังคงสงสัยเกี่ยวกับเรื่องนี้ - person Timothy; 11.04.2013
comment
ที่เกี่ยวข้องกับโหมดส่วนขยาย (ดู mathworks.nl/help/wavelet/ ref/ndwt.html ซึ่งจะชี้ไปที่ mathworks.nl/help /เวฟเล็ต/ref/dwtmode.html) เมื่อคุณใช้เวฟเล็ต db1/Haar สัญญาณจะต้องขยายที่ 1 จุด/ระดับเท่านั้น - person alle_meije; 22.04.2013
comment
ขอบคุณมากที่ช่วยฉัน และตอนนี้ฉันรู้แล้วว่าเกิดอะไรขึ้น - person Timothy; 23.04.2013