คราวก่อนเรารู้เรื่องของการปรับภาพแบบ Brightness หรือเพิ่มลดแสงกันไปแล้วนะครับเรื่องต่อไป ผมก็อยากจะทำในสิ่งที่จะต้องมาคู่กับการปรับแบบ Brightness เสมอๆ นั้นคือ Contrast มาทำความเข้าใจกันก่อนดีกว่าครับว่า Contrast ต่างจาก Brightness อย่างไง
Contrast ไม่ใช่การปรับให้ภาพมีความสว่างหรือความมืดมากขึ้นอย่างไรอย่างหนึ่ง แต่มันจะเป็นทั้งสองอย่าง เรียกกันง่ายๆในภาษาไทยว่าเป็นการเพิ่มหรือลดความต่างระหว่างความสว่างกับมืด เช่น ทำจุดที่มืด ให้สว่าง และทำจุดที่สว่างให้มืด
ปัญหาหนึ่งที่หลายคนน่าจะเคยเจอกันนั้นคือการถ่ายรูปย้อนแสง เวลาถ่ายรูปย้อนแสง คุณจะต้องพบกับความช้ำใจลึกๆ ว่าทำไมภาพมันเลวอย่างงี้ หน้าคนก็ออกมาดำคล้ำเครียด จำไม่รู้ว่าเป็นใคร ไอ้การที่เราจะให้ Brightness เพิ่มแสงให้กับภาพเราก็อาจจะสามารถทำให้เราสามารถเพิ่มความสว่างให้ส่วนใบหน้าที่มืด พอจะดูออกได้ว่าเป็นใครที่ยืนโง่ ย้อนแสงให้เขาถ่ายอยู่แต่ความสว่างจะไปทำลายรายละเอียดที่อยู่ในบริเวณที่ไม่ได้มืดไปซะ เรียกได้ว่าจะต้องได้อย่างเสียอย่าง ถ้าไม่ต้องการได้อย่างเสียอย่าง Contrast จึงต้องเกิดขึ้น มันเป็นเหมือนการเดินเข้าหากันคนละครึ่งทาง ทำให้สิ่งที่อยู่ในแสงอยู่ในแสงสว่างน้อยลงหน่อย และทำให้สิ่งที่ตกอยู่ในเงามืดสว่างขึ้นละเผยรายละเอียดให้เราได้เห็นมากขึ้นด้วย
แล้วปัญหาคือเราจะทำมันอย่างไงดีละ
มาดูกันที่กราฟการเปลี่ยนแปลงกันก่อนละกันคับเราต้องการสมการที่มาการเปลี่ยนแปลงที่หน้าตาประมาณนี้ ในส่วนที่มืด ให้มันสว่างขึ้น และส่วนที่สว่างให้มืดลงซะ หลังจากนั้งคิดอยู่นานแต่นึกไม่ออก แต่เราก็ยังพอจะมีสิ่งที่หน้าตาคล้ายกันอยู่ที่พอจะนึกออกนั้นคือ S-Shape ที่ได้กราฟออกมาหน้าตาคลายๆ กับรูปตัว S ว่าแล้วเราก็เริ่มลงมือทำ นู๋น้อยจอมพลัง นั่งสร้างกราฟพยายาม ให้มันเป็น Sigmoid function แบบ S-Shape และก็ได้ความคิดแล้วว่า ฟังก์ชั่นที่ออกมาหน้าตาน่าจะเป็นประมาณนี้
โดย a , b, c, d เป็นพารามิเตอร์ควบคุมหน้าตากราฟ
ถ้ามีความรู้กันหน่อยก็จะบอกได้ว่า a กับ b นี้ ควบคุมความชันของเส้น ส่วน c กับ d เป็นพารามิเตอร์ที่จะคอยเลือนเส้นให้อยู่ในตำแหน่งซ้ายขวาบนล้าง ต่างๆนาๆ
และก็ใส่เงื่อนไขตามที่เราต้องการเหมือนกับฟังก์ชั่นที่ผ่านมา
f(0)=0
f(255)=255
แทนค่าแล้วแทนค่าหา a,b โดยที่ f(255)=255 ได้ว่า
ทีนี้เราก็จะเหลือ c เป็นพารามิเตอร์ไว้เลือนซ้ายขวา เพื่อความสะดวกและสวยงาม เราก็เลยล็อกมันไว้ตรงการของโดเมนเรานั้นคือ c = 255/2 = 127.5
ต่อไป b พารามิเตอร์ควบคุมความชันของเส้น ด้วยการทดลองส่วนตัวเราก็เห็นแล้วว่า
ถ้าเกินไปกว่านี้ภาพจะเข้าขั้นอุบาทว์ และเหมือนเดิมเพื่อความสะดวกเราก็เพิ่มเติมโดย
สรุปสุดท้ายเราก็จะได้เป็น
ลักษณะการเปลี่ยนแปลงของของมัน นึกๆ เอามันก็เหมือนกับการที่เราดึงเอาส่วนที่สว่างกับส่วนที่มืดให้เข้าหากันมากขึ้น
ปัญหายังไม่จบเมื่อ สิ่งที่เราได้ยังแก้ปัญหาการถ่ายภาพย้อยแสงไม่ได้ ถ้าเรายิ่งปรับค่า I สู่งมากมันก็จะยิ่งสร้างความต่างมาก แต่เมื่อเราลดค่า I ลงเรื่อยๆมันจะเป็นสิ้นสุดที่ 0 พอ I เป็น 0 สิ่งที่เรามีจะเป็นปัญหากลายเป็นฟังชั่นค่าคงที่ไป แล้วเราจะทำอย่างไงดีละจึงจะ แก้ปัญหาภาพย้อนแสงได้
คำตอบก็คือก็แค่จับกราฟมาพลักกลับด้านนั้นเองเราก็จะได้ฟังก์ชั่นที่เราต้องการ หรือพูดเป็นหลักการหน่อยก็คือการเปลี่ยนโดเมนเป็นเร้น เร้นเป็นโดเมน นั้นคือสร้างฟังก์ชั่นส่วนกลับนั้นเอง
เอามาสร้างกราฟแสดงความสัมพันธ์ให้ดูแล้วก็ใส่ภาพให้ดูรูปแบบการเปลี่ยนแปลง
ผลที่ได้มันก็เหมือนกับการที่เราเอาช่วงการเปลี่ยนแปลงมาดึงออกไปด้านข้าง
แสดงตัวอย่างกันหน่อย
รูปของไอ้บ้าที่ของถ่ายรูปย้อนแสงกันนะครับ
แก้ไขภาพถ่ายย้อนแสง |
ภาพที่อยู่ในส่วนมืดก็จะแสดงรายละเอียดให้เห็นละส่วนที่อยู่ในแสงสว่างก็เช่นกันรายละเอียดก็อยู่เช่นเดิม
ถึงอย่างไรเสีย สมการ Contrast ที่สร้างขึ้นเวลาใช้ก็จำเป็นต้องใช้กับสมการ Brightness อยู่ดีเพื่อประสิทธิภาพที่ดีขึ้นนะครับ
ถึงอย่างไรเสีย สมการ Contrast ที่สร้างขึ้นเวลาใช้ก็จำเป็นต้องใช้กับสมการ Brightness อยู่ดีเพื่อประสิทธิภาพที่ดีขึ้นนะครับ
0 ความคิดเห็น:
แสดงความคิดเห็น