ภาพและการประมวลผลภาพ
Note
ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!
สําหรับคอมพิวเตอร์ รูปภาพคืออาร์เรย์ของค่า พิกเซล ตัวเลข ตัวอย่างเช่น พิจารณาอาร์เรย์ต่อไปนี้:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
อาร์เรย์ประกอบด้วยเจ็ดแถวและเจ็ดคอลัมน์ ซึ่งแสดงถึงค่าพิกเซลสําหรับภาพขนาด 7x7 พิกเซล (ซึ่งเรียกว่า ความละเอียดของภาพ) แต่ละพิกเซลมีค่าระหว่าง 0 (สีดํา) ถึง 255 (สีขาว) โดยมีค่าระหว่างขอบเขตเหล่านี้แสดงถึงเฉดสีเทา รูปภาพที่แสดงโดยอาร์เรย์นี้มีลักษณะคล้ายกับรูปภาพ (ขยาย) ต่อไปนี้:
อาร์เรย์ของค่าพิกเซลสําหรับรูปภาพนี้เป็นแบบสองมิติ (แสดงแถวและคอลัมน์ หรือพิกัด x และ y ) และกําหนดค่าสี่เหลี่ยมผืนผ้าเดียวของค่าพิกเซล ค่าพิกเซลเลเยอร์เดียวเช่นนี้แสดงถึงภาพระดับสีเทา ในความเป็นจริง ภาพดิจิทัลส่วนใหญ่มีหลายมิติและประกอบด้วยสามชั้น (เรียกว่า ช่องสัญญาณ) ที่แสดงถึงเฉดสีแดง เขียว และน้ําเงิน (RGB) ตัวอย่างเช่น เราสามารถแสดงภาพสีโดยการกําหนดค่าพิกเซลสามช่องที่สร้างรูปร่างสี่เหลี่ยมจัตุรัสเดียวกันกับตัวอย่างระดับสีเทาก่อนหน้านี้:
Red:
150 150 150 150 150 150 150
150 150 150 150 150 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 150 150 150 150 150
150 150 150 150 150 150 150
Green:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Blue:
255 255 255 255 255 255 255
255 255 255 255 255 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 255 255 255 255 255
255 255 255 255 255 255 255
นี่คือภาพที่ได้:
สี่เหลี่ยมสีม่วงแสดงด้วยการรวมกัน:
Red: 150
Green: 0
Blue: 255
สี่เหลี่ยมสีเหลืองตรงกลางแสดงด้วยการรวมกัน:
Red: 255
Green: 255
Blue: 0
ตัวกรอง
วิธีทั่วไปในการดําเนินการประมวลผลรูปภาพคือการใช้ฟิลเตอร์ที่ปรับเปลี่ยนค่าพิกเซลของรูปภาพเพื่อสร้างเอฟเฟ็กต์ภาพ ฟิลเตอร์จะถูกกําหนดโดยอาร์เรย์ของค่าพิกเซลอย่างน้อยหนึ่งรายการที่เรียกว่าเคอร์เนลฟิลเตอร์ ตัวอย่างเช่น คุณสามารถกําหนดฟิลเตอร์ด้วยเคอร์เนล 3x3 ดังที่แสดงในตัวอย่างนี้:
-1 -1 -1
-1 8 -1
-1 -1 -1
จากนั้นเคอร์เนลจะครอบคลุมทั้งรูปภาพ โดยคํานวณผลรวมถ่วงน้ำหนักสําหรับแพตช์พิกเซล 3x3 แต่ละตัว และกําหนดผลลัพธ์ให้รูปภาพใหม่ การสํารวจตัวอย่างแบบทีละขั้นตอนช่วยให้เข้าใจวิธีการทำงานของฟิลเตอร์ได้ง่ายขึ้น
มาเริ่มต้นด้วยรูปภาพโทนสีเทาที่เราสํารวจไปก่อนหน้านี้กัน:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
ก่อนอื่นเราจะใช้เคอร์เนลฟิลเตอร์กับแพตช์ด้านซ้ายบนของรูปภาพ คูณแต่ละค่าพิกเซลด้วยค่าถ่วงน้ำหนักที่สอดคล้องกันในเคอร์เนล และเพิ่มผลลัพธ์:
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (0 x -1) + (255 x -1) = -255
ผลลัพธ์ (-255) จะกลายเป็นค่าแรกในอาร์เรย์ใหม่ จากนั้นเราย้ายเคอร์เนลฟิลเตอร์ไปทางด้านขวาหนึ่งพิกเซล และดําเนินการซ้ำเช่นเดิม:
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (255 x -1) + (255 x -1) = -510
และผลลัพธ์จะถูกเพิ่มลงในอาร์เรย์ใหม่เช่นกัน ซึ่งตอนนี้ประกอบด้วยสองค่าแล้ว:
-255 -510
กระบวนการจะวนซ้ำไปจนกว่าฟิลเตอร์จะครอบคลุมทั้งรูปภาพ ดังที่แสดงในภาพเคลื่อนไหวนี้:
ฟิลเตอร์จะครอบคลุมทั่วทั้งรูปภาพ โดยคํานวณอาร์เรย์ใหม่ของค่า ค่าบางอย่างอาจอยู่นอกช่วงค่า 0 ถึง 255 พิกเซล ดังนั้นค่าจะถูกปรับให้พอดีกับช่วงนั้น เนื่องจากรูปร่างของฟิลเตอร์ จะไม่มีการคํานวณขอบภายนอกของพิกเซล ดังนั้นจึงใช้ค่าช่องว่างภายใน (โดยปกติจะเป็น 0) อาร์เรย์ผลลัพธ์แสดงรูปภาพใหม่ที่ฟิลเตอร์ได้แปลงรูปภาพต้นฉบับ ในกรณีนี้ ฟิลเตอร์ใช้เอฟเฟ็กต์ไฮไลต์ขอบของรูปทรงต่างๆ ในภาพ
หากต้องการดูเอฟเฟ็กต์ของฟิลเตอร์ให้ชัดเจนยิ่งขึ้น นี่คือตัวอย่างของฟิลเตอร์เดียวกันที่ใช้กับรูปภาพจริง:
| รูปภาพต้นฉบับ | รูปภาพที่ผ่านฟิลเตอร์แล้ว |
|---|---|
|
|
เนื่องจากฟิลเตอร์จะครอบคลุมทั่วทั้งรูปภาพ การจัดการรูปภาพชนิดนี้จึงมักจะเรียกว่าฟิลเตอร์แบบครอบคลุมทั้งรูปภาพ ตัวกรองที่ใช้ในตัวอย่างนี้คือฟิลเตอร์ชนิดหนึ่ง (เรียกว่าฟิลเตอร์ Laplace ) ที่เน้นขอบของวัตถุในรูปภาพ โดยมีฟิลเตอร์ชนิดอื่นๆ อีกมากมายที่คุณสามารถใช้เพื่อสร้างการเบลอ การปรับความคมชัด การกลับสี และเอฟเฟ็กต์อื่นๆ