วิธีแก้ไขแสงที่ไม่สม่ำเสมอ / ไล่ระดับบนผ้าใบที่มีพื้นหลังสีขาว


24

ฉันมีรูปวาดดินสอที่เขียนบนกระดาษถ่ายด้วยแฟลชฮอทชูบนกล้อง DSLR และฟิลเตอร์โพลาไรซ์สองตัว ( เทคนิคโพลาไรเซอร์ข้ามสำหรับการถ่ายภาพบนผืนผ้าใบ)

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

ด้านล่างเป็นภาพตัวอย่าง ต้นฉบับกว้างประมาณ 3 ซม.

สิ่งนี้จะแก้ไขได้อย่างไรเมื่อพื้นหลังมีสีขาวสม่ำเสมอ

ภาพต้นฉบับพร้อมแสงที่ไม่สม่ำเสมอ

-Edit-

ผลการสแกนด้านล่างไม่ถูกแก้ไขและแก้ไข ในขณะที่สิ่งนี้ดูค่อนข้างสดใสในตอนแรก แต่น่าเสียดายที่ความละเอียดเต็มรูปแบบที่คุณเห็นที่นี่ (กว้าง 600 พิกเซล) สแกนเนอร์สามารถทำ 300 dpi และรูปวาดมีความกว้างประมาณหนึ่งนิ้ว นี่เป็นเล็กน้อยน้อยเมื่อเทียบกับ 5000 px จากกล้อง

นอกจากนี้การสแกนที่ไม่ได้รับการแก้ไขคำแนะนำที่แกรไฟต์สะท้อนให้เห็นถึงส่วนที่ดีของแสงเมื่อเทียบกับเทคนิคการข้ามขั้ว

สแกนไม่ได้แก้ไข สแกนด้วยเส้นโค้งที่แก้ไข


มีเหตุผลใดที่คุณถ่ายภาพแทนที่จะสแกนมัน?
โคลจอห์นสัน

ใช่; ผ้าใบสามารถมีขนาดใหญ่กว่า A4 แต่ฉันจะเปรียบเทียบผลลัพธ์ในตอนเย็น ฉันค่อนข้างสงสัยเกี่ยวกับการสะท้อนที่อาจเกิดขึ้นบนแกรไฟต์
Simon A. Eugster

@ColeJohnson Scan เพิ่มไปแล้ว
Simon A. Eugster

อย่างอื่นลอง: รับตารางแสงหรือเพียงวางรูปวาดของคุณและส่องแสงสว่างจากด้านหลังและถ่ายภาพด้วยแสงที่ส่องผ่านมัน (ให้กระดาษทำหน้าที่เป็นตัวกระจายแสง) แน่นอนว่าสิ่งนี้จะไม่ทำงานกับสีทึบแสงหรือหากมีสิ่งใดวาดด้านหลัง แต่สำหรับดินสอด้านเดียวดินสอสีหมึกหรือภาพสีน้ำอาจจะคุ้มค่าที่จะลอง
Ilmari Karonen

คำตอบ:


8

วิธีที่ฉันใช้เองคล้ายกับของคุณแต่ใช้ปลั๊กอิน Resynthesizer (สำหรับ GIMP) หรือContent-Aware Fill (สำหรับ Photoshop) เพื่อสร้างการไล่ระดับสีใหม่:

  1. สร้างการเลือกที่ครอบคลุมการวาดอย่างสมบูรณ์ คุณสามารถทำได้ด้วยมือหรือคุณสามารถใช้ตัวกรองสูงผ่านการคำนวณรูปแบบการเลือกเช่นนี้:

    • เริ่มต้นด้วยการใช้ตัวกรองการตรวจจับขอบเช่นความแตกต่างของ Gaussiansบน (สำเนา) การสแกนของคุณเพื่อดึงภาพวาดที่หยาบ:

      ขั้นตอนที่ 1.1: แยกการวาดด้วยความแตกต่างของ Gaussians

    • หากผลลัพธ์ไม่มีความคมชัดใช้เครื่องมือระดับเพื่อทำให้มืดลง:

      ขั้นตอนที่ 1.2: ปรับระดับ

    • ใช้Gaussian Blur :

      ขั้นตอนที่ 1.3: ใช้ Gaussian เบลอ

    • ใช้เครื่องมือThresholdเพื่อรับมาสก์ที่ครอบคลุมการวาดทั้งหมดและใช้เลือกตามสีเพื่อเลือก:

      ขั้นตอนที่ 1.4: ใช้เครื่องมือเขตแดนเพื่อให้ได้มาสก์

  2. เมื่อคุณมีตัวเลือกที่ครอบคลุมการวาดภาพให้ทำสำเนาของเลเยอร์การสแกนต้นฉบับและใช้Heal Selection / Content-Aware Fillเพื่อเติมลงในอุดมคติแล้วเลเยอร์ที่คัดลอกของคุณควรมีลักษณะเหมือนภาพแผ่นกระดาษเปล่า:

    ขั้นตอนที่ 2: เลือกรักษาเพื่อสร้างกระดาษเปล่าใหม่

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

    ขั้นตอนที่ 3: หารด้วยชั้นกระดาษเปล่า

    (ภาพด้านบนมีเลเยอร์ Gaussian แบบเติมเต็มเบลอเบลอ 10px และตั้งค่าความทึบเป็น 95%)

  4. อีกทางเลือกหนึ่งหลังจากผสานเลเยอร์แล้วให้ปรับระดับเพื่อตั้งจุดดำ (เคล็ดลับ: ใช้มุมมองฮิสโทแกรมลอการิทึม) และเพิ่มความคมชัด:

    ขั้นตอนที่ 4: ปรับระดับ

(Ps. คลิกที่ภาพขนาดครึ่งเพื่อดูขนาดเต็ม)

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


มันยอดเยี่ยมมากและจริง ๆ แล้วสิ่งที่ฉันต้องการจะทำก่อน แต่ฉันไม่พบ Resynthesizer! จะลองในวันพรุ่งนี้ด้วยภาพวาดบางส่วน อยากรู้อยากเห็นเกี่ยวกับส่วนที่ครอบคลุมการวาดภาพขนาดใหญ่ ผลลัพธ์ของคุณดูดีมากแล้ว
Simon A. Eugster

ดูเหมือนว่าฉันไม่สามารถลงทะเบียนHeal Selectionใน Gimp ได้ แต่น่าเสียดาย ...
Simon A. Eugster

มันแปลกมาก คุณอยู่บน Windows หรือ Linux ความเป็นไปได้อย่างหนึ่งคือคุณอาจไม่ได้ใช้ Python หรือ GIMP อาจหาไม่พบด้วยเหตุผลบางประการ ในกรณีดังกล่าว Heal Selection อาจใช้งานไม่ได้ แต่ตัวกรองพื้นฐาน> แผนที่> Resynthesize (ซึ่งสามารถทำทุกอย่าง Heal Selection ได้แม้ว่า UI อาจไม่สะดวกนัก)
Ilmari Karonen

ฉันอยู่บน Linux และต้องรวบรวมปลั๊กอินด้วยตัวเอง แผนที่> Resynthesizeพร้อมใช้งานแน่นอน ฉันจะตรวจสอบว่า Gimp พบรุ่นหลามที่ต้องการได้อย่างไร ฉันติดตั้ง 2.7.5 และ 3.3.2 แล้ว
Simon A. Eugster

ฉันไม่แน่ใจจริงๆ ฉันใช้ Ubuntu ด้วยตัวเองและปล่อยให้ APT ดูแลสิ่งต่างๆ ที่ไม่หลาม-Fu เมนูย่อยปรากฏสำหรับคุณที่ทั้งหมดหรือไม่ ถ้าไม่คุณอาจต้องติดตั้ง GIMP-Python (ถ้าแยกจาก GIMP เอง) และ / หรือคอมไพล์ GIMP พร้อมเปิดใช้งานการสนับสนุน Python จากนั้นอีกครั้งฉันแค่เดาที่นี่จริง ๆ
Ilmari Karonen

18

แก้ไข: ผมเขียนสคริปต์ Gimpที่ไม่ทำตามขั้นตอนดังต่อไปนี้และอีกหนึ่งสำหรับคำตอบ Ilmaris ทั้งสคริปต์ที่ใช้ได้สำหรับการดาวน์โหลดบน GitHub วิธีที่แนะนำให้ไปเป็นคนนี้


ฉันตอบคำถามนี้ที่นี่เพราะฉันค้นหาวิธีแก้ปัญหามาระยะหนึ่งแล้วพบว่าใช้งานได้ง่าย ไปที่ผลลัพธ์ทันที:

  1. สร้างเลเยอร์พื้นหลังโดยการคัดลอกแถบแนวตั้งของพื้นหลังเท่านั้นและขยายเป็นขนาดของภาพต้นฉบับ

    ใน Gimp: เลือกrสี่เหลี่ยมผืนผ้าจากบนลงล่างที่มีพื้นหลังวางShift+Ctrl+Vไปที่รูปภาพใหม่และขยายFilter > Map > Tileเป็นขนาดรูปภาพเรียกใช้ gaussian เบลอจากนั้นคัดลอกกลับไปยังรูปภาพเป็นเลเยอร์ใหม่

  2. ตั้งโหมดชั้นไปกอง

  3. ลดความทึบของเลเยอร์ได้ตามต้องการเช่นลด 90% การเก็บไว้ที่ 100% โดยปกติแล้วจะค่อนข้างสว่างเกินไป

ขั้นตอนการแบ่ง

โดยพื้นฐานแล้วสิ่งนี้จะทำให้เลเยอร์พื้นหลังกำหนดค่า RGB wของ“ สีขาว” ในแต่ละพิกเซล ส่วนโหมดชั้นแล้วเหยียดค่าบนภาพที่จาก[0,w]ไป[0,255](ดูGIMP โหมดชั้น ) ต่อพิกเซล

(ไม่ดี) ตัวอย่างการใช้เส้นโค้งและการไล่ระดับสีเชิงเส้น

ความพยายามครั้งแรกนั้นเกี่ยวกับการทำซ้ำเลเยอร์เสมอการเปลี่ยนความสว่างเช่นส่วนที่มืดที่สุดที่ด้านล่างจะติดอย่างถูกต้องและเพิ่มเลเยอร์มาสก์ที่มีการไล่ระดับสีเชิงเส้นเพื่อเพิ่มความสว่างให้กับบริเวณที่มืดเท่านั้น ยิ่งการไล่ระดับสีแรงขึ้นเท่าใด

พยายามไล่ระดับสีเชิงเส้น

(ดีกว่า) ตัวอย่างการใช้การแบ่ง

ฝ่ายให้ผลลัพธ์ที่ดีกว่ามาก; แสงจะได้รับการแก้ไขอย่างสม่ำเสมอและไม่มีบริเวณที่ถูกเผาไหม้โดยเฉพาะอย่างยิ่งในส่วนด้านซ้ายของภาพวาด

โดยใช้การแบ่ง


หรือเพียงแค่เปลี่ยนการตั้งค่าระดับใน photoshop
SaturnsEye

3
เพื่อผลลัพธ์ที่ดียิ่งขึ้นโดยเฉพาะอย่างยิ่งในกรณีที่เงาไม่คงที่ / ไม่เป็นเชิงเส้นทั้งสองทิศทางสามารถทำงานเพื่อถ่ายภาพแผ่นกระดาษสีขาวใช้การเบลอเล็กน้อยเพื่อกำจัดเสียงรบกวนของกล้องและการใช้งาน นั่นคือฐานการปรับชั้น
PlasmaHH

1
@SaturnsEye ลองด้วยภาพอินพุตด้านบน ไม่ทำงาน;) หากกระดาษเป็นสีเทาสม่ำเสมอเช่น 10% ใช่แล้วนั่นจะเป็นวิธีที่ง่ายที่สุด
Simon A. Eugster

@PlasmaHH ฉันต้องการใช้ขาตั้งกล้องเพื่อให้ได้ระยะห่างที่สอดคล้องกัน แต่เป็นวิธีที่ดีโดยเฉพาะอย่างยิ่งสำหรับการวาดภาพสี ด้านหลังของกระดาษมักจะเป็นสีขาวอยู่แล้วดังนั้นจึงสามารถใช้เป็นชั้นการปรับได้ (เราใช้กระดาษหลายชนิดที่มีเฉดสีเทา / น้ำตาลแตกต่างกัน)
Simon A. Eugster

@ SimonA.Eugster: ถ้าฉันต้องทำสิ่งเหล่านี้มากกว่าหนึ่งครั้งฉันจะใช้ขาตั้งกล้องและการตั้งค่าแสงที่สามารถนำกลับมาใช้ใหม่ได้เพื่อให้ได้ผลลัพธ์ที่สอดคล้องกันอย่างไรก็ตาม
PlasmaHH

5

คำตอบนี้อธิบายถึงวิธีการที่เชื่อถือได้เร็วที่สุดฉันรู้ ATM, ขึ้นอยู่กับคำตอบโดย Ilmari Kanoren เป็นแบบกึ่งอัตโนมัติ มาสก์อัตโนมัตินั้นใช้งานไม่ได้กับภาพที่แข็งเช่นเดียวกับภาพด้านล่างเนื่องจากบางส่วนของภาพไม่มีขอบ

สคริปต์ Gimp นี้ทำตามขั้นตอนที่ 3 และ 4 โดยอัตโนมัติ (โปรดทราบว่าจำเป็นต้องใช้ Resynthesizer) ดังนั้นเวิร์กโฟลว์จึงเป็นเพียงแค่: สร้างส่วนที่เลือกแล้วรันสคริปต์ สคริปต์ใช้เวลา 6 วินาทีในการทำอิมเมจ 15 MP บนแล็ปท็อปอายุ 3 ปีของฉัน

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

ขั้นตอนที่ 1 (ไม่บังคับ): ปรับเส้นโค้งสำหรับสีดำลึก

จุดดำ

ขั้นตอนที่ 2: เลือกวัตถุ

ใน Gimp Quick Mask Shift+Qนั้นเป็นวิธีที่รวดเร็ว ใช้ดินสอNและทาสีวัตถุสีขาวแล้วกดShift+Qอีกครั้งเพื่อแปลงหน้ากากเป็นตัวเลือก

วัตถุที่เลือก

ขั้นตอนที่ 3: สร้างพื้นหลังใหม่

  • ทำสำเนารูปภาพและสเกลเป็น 400 × 400 px
  • ใช้การเลือกการรักษาหรือการเติมเนื้อหาที่รับรู้เพื่อรักษาวัตถุให้หายไป (เหลือเพียงพื้นหลัง)
  • ใช้ Gaussian Blur, 40 × 40 px
  • ปรับขนาดภาพกลับเป็นขนาดดั้งเดิมและคัดลอกกลับเป็นเลเยอร์สู่ภาพต้นฉบับ

พื้นหลัง

ขั้นตอนที่ 4: โหมดการแบ่ง

ตั้งค่าโหมดเลเยอร์เป็นDivisionและลดความทึบเล็กน้อยหากต้องการ

ภาพคงที่


1

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

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

คุณสามารถหันขาตั้งกล้องคว่ำหน้าลงแล้ววางภาพวาดลงบนพื้น

หรือถ้าคุณไม่มีขาตั้งกล้องคุณสามารถจัดวางปกหนังสือหรือกล่องซีเรียลเพื่อเก็บภาพในแนวตั้งบนโต๊ะและวางกล้องของคุณให้มั่นคงบนโต๊ะตัวเดียวกัน (วางกระดาษขาวไว้ด้านหลังรูปวาดของคุณเพื่อหลีกเลี่ยงการเห็นภาพพื้นหลังหรือพื้นผิว)

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


ฉันรู้เรื่องแสงโดยรอบ มันน่าจะให้ผลลัพธ์ที่ดีกว่าเกี่ยวกับการไล่ระดับสีแม้ว่าในระยะนี้เลนส์ส่วนใหญ่น่าจะเริ่มมีเงาบนกระดาษอยู่แล้ว ต้องการโพลาไรเซอร์จริง ๆ ที่นี่เพราะพื้นผิวกระดาษไม่เท่ากันและกราไฟต์ทำได้ดีอย่างน่าประหลาดใจที่สะท้อนแสงที่มืดกว่าที่คุณต้องการพื้นที่เป็น;) นอกจากนี้การกดแรงขึ้นเล็กน้อยด้วยดินสออาจสร้างเยื้องที่แสงแวดล้อม .
Simon A. Eugster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.