อะไรคือความแตกต่างที่เกี่ยวข้องในทางปฏิบัติระหว่างวิธีการสุ่มภาพซ้ำแบบต่างๆ


22

ImageResizeฟังก์ชันของ Mathematica รองรับวิธีresamplingจำนวนมาก

การไม่คุ้นเคยกับบริเวณนี้นอกเหนือจากเพื่อนบ้านที่ใกล้ที่สุดคือ bilinear, biquadratic และ bicubic (ซึ่งเห็นได้ชัดจากชื่อ) ฉันหลงทาง

คุณช่วยชี้ให้ฉันเห็นบางแหล่งที่จะอธิบายความแตกต่างพื้นฐาน (ทางคณิตศาสตร์) ระหว่างวิธีการเหล่านี้และโดยเฉพาะอย่างยิ่งชี้ให้เห็นถึงความแตกต่างในทางปฏิบัติ (เช่นโดยการแสดงภาพตัวอย่างที่การเลือกวิธีการนั้นสำคัญ

ฉันไม่มีพื้นหลังการประมวลผลสัญญาณดังนั้นฉันจึงชอบการแนะนำที่ "สุภาพ" และกระชับ :-)


ฉันจะคัดลอกรายการImageResizeวิธีการที่ "ขี้เกียจ" ที่นี่เพื่อคลิกลิงก์:

  • "ใกล้" เพื่อนบ้านที่ใกล้เคียงที่สุด resampling

  • การแก้ไขทวิภาคี "Bilinear"

  • "Biquadratic" การแก้ไขเส้นโค้ง biquadratic

  • การแก้ไขเส้นโค้ง Bicubic "Bicubic"

  • "Gaussian" Gaussian resampling อีกครั้ง

  • "Lanczos" วิธีการแก้ไขหลายตัวแปร Lanczos

  • การแก้ไขค่า "โคไซน์"

  • "Hamming" เพิ่มการแก้ไข Hamming แบบโคไซน์

  • "Hann" ได้ทำการเพิ่มค่าชดเชย cosine Hann

  • "แบล็กแมน" สามระยะทั่วไปโคไซน์ยก

  • การแก้ไขหน้าต่างสามเหลี่ยม "Bartlett"

  • "Connes" กำลังสองการแก้ไข Welch

  • "เวลช์" การแก้ไขกำลังสองเวลช์

  • "Parzen" การประมาณค่าคิวแบบลูกบาศก์

  • "Kaiser" การแก้ไข Bessel ที่ไม่ได้รับคำสั่ง


1
คำถามดูเหมือนกว้างเกินไปสำหรับฉัน เป็นความคิดที่ดีที่จะแยกมันเป็นวิธีการเฉพาะและถามคำถามเฉพาะสำหรับวิธีการที่คุณมีปัญหา
mirror2image

คำถามของคุณค่อนข้างชัดเจนคุณอาจพบว่าภาพนี้มีการเปรียบเทียบที่น่าสนใจเปรียบเทียบ: general-cathexis.com/interpolation/index.html
Mr.Wizard

ฉันจะใส่ใจว่าวิธีการทั้งหมดที่คุณเขียนคือ Space Invariant ฉันคิดว่าวิธีที่ทันสมัยกว่าสำหรับการสุ่มตัวอย่างคือ Edge Aware และ Space Variant
Royi

นี่คือการเปลี่ยนแปลงครั้งสุดท้าย มันเรียกว่าการแปลง PB และจะแปลงภาพโดยการคาดคะเนค่าสองทางตามความน่าจะเป็นที่จะเกิดขึ้นหลังจากได้รับการฝึกฝนในภาพอื่น ๆ อีกมากมาย นี่คือลักษณะของ [ผล] [1] [1]: v1.std3.ru/57/a9/…
MyBushisaNeonJungle

คำตอบ:


12

รับภาพกับm , nจำนวนเต็มการแก้ไขของภาพนั้น ณ จุดใด ๆm , n สามารถเขียนเป็นผม(ม.,n)ม.,nม.',n'

ผม~(ม.',n')=Σม.=ม.'-W+1ม.'+W Σn=n'-W+1n'+Wผม(ม.,n) (ม.'-ม.,n'-n)

ผม~ผม(x,Y)

(ม.,n)

เช่นเดียวกับฟังก์ชั่นหน้าต่างสำหรับสัญญาณชั่วคราวมันเป็นเรื่องง่ายที่จะได้รับส่วนแบ่งของเคอร์เนลการแก้ไขภาพโดยดูที่การตอบสนองความถี่ จากคำตอบของฉันในฟังก์ชั่นหน้าต่าง :

ปัจจัยหลักสองประการที่อธิบายการทำงานของหน้าต่างคือ:

  1. ความกว้างของกลีบหลัก (เช่นที่ความถี่ของถังขยะคือกำลังครึ่งหนึ่งของการตอบสนองสูงสุด)
  2. การลดทอนของแยมด้านข้าง (กล่าวคือไกลแค่ไหนแฉกแฉกข้างจาก mainlobe) สิ่งนี้บอกคุณเกี่ยวกับการรั่วไหลของสเปกตรัมในหน้าต่าง

นี่สวยมากจริงสำหรับการแก้ไขเมล็ด ตัวเลือกนั้นเป็นการแลกเปลี่ยนระหว่างการกรองความถี่ (การลดทอนของ sidelobes), การ จำกัด เชิงพื้นที่ (ความกว้างของการฉีด) และการลดผลกระทบอื่น ๆ เช่นเสียงกริ่ง (กิ๊บส์เอฟเฟกต์), aliasing, การเบลอเป็นต้น ในขณะที่ sinc kernel และ Lanczos4 kernel จะแนะนำ"ringing"ในภาพในขณะที่ Gaussian resampling จะไม่ทำการเปิดเสียงเรียกเข้า

นี่คือตัวอย่างแบบง่าย ๆ ใน Mathematica ที่ให้คุณเห็นผลกระทบของฟังก์ชั่นการแก้ไขที่แตกต่างกัน:

true = ExampleData[{"TestImage", "Lena"}];
resampling = {"Nearest", "Bilinear", "Biquadratic", "Bicubic", 
   "Gaussian", "Lanczos", "Cosine", "Hamming", "Hann", "Blackman", 
   "Bartlett", "Connes", "Welch", "Parzen", "Kaiser"};
small = ImageResize[true, Scaled[1/4]];

trueผม(x,Y)smallผม(ม.,n)ผม(ม.,n)ผม~(ม.',n')

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถเห็นด้วยตัวคุณเองว่าฟังก์ชั่นการแก้ไขที่แตกต่างกันนั้นมีเอฟเฟกต์ต่างกัน ใกล้ที่สุดและอีกไม่กี่คนมีคุณสมบัติที่หยาบมากและคุณสามารถเห็นเส้นขรุขระ (ดูภาพขนาดเต็มไม่ใช่จอแสดงผลแบบกริด) Bicubic, biquadratic และ Parzen เอาชนะเรื่องนี้ได้ ในเมล็ดทั้งหมด Lanczos ดูเหมือน (มองเห็น) ว่าเป็นสิ่งที่น่าดึงดูดและเป็นงานที่ดีที่สุดในจำนวนมาก

ฉันจะพยายามขยายคำตอบนี้และให้ตัวอย่างที่เข้าใจง่ายมากขึ้นซึ่งแสดงให้เห็นถึงความแตกต่างเมื่อฉันมีเวลา คุณอาจต้องการอ่านบทความที่ง่ายและให้ข้อมูลที่ฉันพบบนเว็บ (คำเตือน PDF)


เป็นสัญกรณ์ที่ฉันเห็น! : ->
Mr.Wizard

@ Mr.Wizard ผมไม่บอกว่าผมต้องการให้ความพยายามที่ซื่อสัตย์ :)
Lorem Ipsum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.