เป็นชุมชนวิกิดังนั้นคุณสามารถแก้ไขโพสต์ที่น่ากลัวและน่ากลัวนี้ได้
Grrr ไม่มีน้ำยางข้น :) ฉันเดาว่าฉันจะต้องทำให้ดีที่สุดเท่าที่จะทำได้
ความหมาย:
เรามีภาพ (PNG, หรืออีกรูปแบบ lossless *) ชื่อขนาดxโดยY เป้าหมายของเราคือการปรับขนาดได้โดยp = 50%
ภาพ ( "อาร์เรย์") Bจะเป็น "ปรับขนาดได้โดยตรง" รุ่น มันจะมีB s = 1จำนวนขั้นตอน
A = B B s = B 1
ภาพ ( "อาร์เรย์") Cจะเป็น "ปรับขนาดแบบค่อยเป็นค่อยไป" รุ่น มันจะมีC s = 2จำนวนขั้นตอน
A ≅ C C s = C 2
เรื่องสนุก:
A = B 1 = B 0 × p
C 1 = C 0 × p 1 ÷ C s
A ≅ C 2 = C 1 × p 1 ÷ C s
คุณเห็นพลังเศษส่วนหรือไม่ พวกเขาจะลดคุณภาพทางทฤษฎีด้วยภาพแรสเตอร์ (แรสเตอร์ภายในเวกเตอร์ขึ้นอยู่กับการใช้งาน) เท่าไหร่ เราจะคิดออกว่าต่อไป ...
สิ่งที่ดี:
C e = 0ถ้าp 1 ÷ C s ∈ℤ
C e = C sถ้าp 1 ÷ C s ∉ℤ
โดยที่eแสดงถึงข้อผิดพลาดสูงสุด (สถานการณ์กรณีที่เลวร้ายที่สุด) เนื่องจากข้อผิดพลาดในการปัดเศษจำนวนเต็ม
ตอนนี้ทุกอย่างขึ้นอยู่กับอัลกอริธึมการลดขนาด (Super Sampling, Bicubic, Lanczos sampling, Neighbor ที่ใกล้ที่สุด ฯลฯ )
ถ้าเรากำลังใช้เพื่อนบ้านที่ใกล้ที่สุด (คนที่เลวร้ายที่สุดอัลกอริทึมสำหรับสิ่งที่มีคุณภาพใด ๆ ) ที่ "ผิดพลาดสูงสุดที่แท้จริง" ( ซีที ) จะเท่ากับซีอี หากเราใช้อัลกอริทึมอื่นใดมันจะซับซ้อน แต่ก็จะไม่แย่ (ถ้าคุณต้องการคำอธิบายทางเทคนิคว่าทำไมมันจะไม่เลวร้ายเท่าเพื่อนบ้านที่ใกล้ที่สุดฉันไม่สามารถให้คุณได้เพราะมันเป็นเพียงการเดาหมายเหตุ: เฮ้นักคณิตศาสตร์! แก้ไขปัญหานี้ได้!
รักเพื่อนบ้านของคุณ:
ขอให้เป็น "อาร์เรย์" ของภาพDกับD x = 100 , D Y = 100และD s = 10 หน้ายังคงเป็นเหมือนเดิม: p = 50%
อัลกอริทึมเพื่อนบ้านที่ใกล้ที่สุด (นิยามแย่มากฉันรู้)
N (I, p) = mergeXYDuplicates (floorAllImageXYs (I x, y × p), I)ที่x, yเองเท่านั้นที่ถูกคูณ ไม่ใช่ค่าสี (RGB) ของพวกเขา! ฉันรู้ว่าคุณไม่สามารถทำเช่นนั้นได้ในวิชาคณิตศาสตร์และนี่คือสาเหตุที่ฉันไม่ได้เป็นนักคณิตศาสตร์ในตำนานของคำทำนาย
( mergeXYDuplicates ()เก็บเฉพาะองค์ประกอบด้านล่างสุด / ซ้ายสุด, x " y " ในภาพต้นฉบับIสำหรับรายการซ้ำทั้งหมดที่พบและกำจัดส่วนที่เหลือ)
ลองมาพิกเซลสุ่ม: D 0 39,23 จากนั้นใช้D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93.3%)ซ้ำแล้วซ้ำอีก
c n + 1 = ชั้น (c n × ~ 93.3%)
c 1 = ชั้น ((39,23) × ~ 93.3%) = ชั้น ((36.3,21.4)) = (36,21)
c 2 = ชั้น ((36,21) × ~ 93.3%) = (33,19)
c 3 = (30,17)
c 4 = (27,15)
c 5 = (25,13)
c 6 = (23,12)
c 7 = (21,11)
c 8 = (19,10)
c 9 = (17,9)
c 10 = (15,8)
หากเราลดขนาดลงเพียงครั้งเดียวเราจะได้:
b 1 = ชั้น ((39,23) × 50%) = ชั้น ((19.5,11.5)) = (19,11)
ลองเปรียบเทียบbกับc :
b 1 = (19,11)
c 10 = (15,8)
นั่นเป็นข้อผิดพลาดของ(4,3)พิกเซล! ลองทำด้วยพิกเซลสุดท้าย(99,99)และบัญชีสำหรับขนาดที่แท้จริงในข้อผิดพลาด ฉันจะไม่ทำทุกทางคณิตศาสตร์ที่นี่อีกครั้ง แต่ฉันจะบอกคุณมันจะกลายเป็น(46,46) , ข้อผิดพลาดของ(3,3)จากสิ่งที่มันควรจะเป็น(49,49)
Let 's รวมผลลัพธ์เหล่านี้กับต้นฉบับ: ข้อผิดพลาด "ของจริง" เป็น(1,0) ลองจินตนาการว่าสิ่งนี้เกิดขึ้นกับทุกพิกเซลหรือไม่ ... มันอาจทำให้เกิดความแตกต่าง อืม ... อาจมีตัวอย่างที่ดีกว่า :)
สรุป:
หากรูปภาพของคุณมีขนาดใหญ่ แต่เดิมจะไม่สำคัญเว้นแต่คุณจะลดขนาดหลาย ๆ ครั้ง (ดู "ตัวอย่างจริง" ด้านล่าง)
มันแย่ลงโดยสูงสุดหนึ่งพิกเซลต่อขั้นตอนที่เพิ่มขึ้น (ลง) ในเพื่อนบ้านที่ใกล้ที่สุด หากคุณลดขนาดลงสิบภาพของคุณจะมีคุณภาพลดลงเล็กน้อย
ตัวอย่างโลกแห่งความจริง:
(คลิกที่ภาพย่อเพื่อดูขนาดใหญ่)
ลดระดับโดยการสุ่มเพิ่มขึ้น 1% เมื่อใช้ Super Sampling:
อย่างที่คุณเห็น Super Sampling "เบลอ" หากใช้หลายครั้ง นี่คือ "ดี" ถ้าคุณทำ downscale หนึ่ง สิ่งนี้ไม่ดีถ้าคุณทำแบบเพิ่มหน่วย
* ขึ้นอยู่กับโปรแกรมแก้ไขและรูปแบบสิ่งนี้อาจสร้างความแตกต่างได้ดังนั้นฉันจึงทำให้มันง่ายและเรียกมันว่าไม่สูญเสีย
(100%-75%)*(100%-75%) != 50%
. แต่ฉันเชื่อว่าฉันรู้ว่าคุณหมายถึงอะไรและคำตอบคือ "ไม่" และคุณจะไม่สามารถบอกความแตกต่างได้ถ้ามี