ก่อนจะเขียนโปรแกรม Digital Image Processing เรามารู้จัก ภาพดิจิตอล (Digital Image) กันก่อนดีมั้ยครับ

ก่อนที่เราจะพูดถึง “การประมวลผลภาพดิจิตอล หรือ Digital Image Processing” กันนั้น เราควรจะต้องรู้จัก “ภาพดิจิตอล” (Digital Image) กันเสียก่อน อันที่จริงแล้ว “ภาพดิจิตอล” (Digital Image) เป็นสิ่งที่เราคุ้นเคย และสัมผัสกันอยู่แล้วในชิวิตประจำวัน

ไม่ว่าจะเป็นภาพถ่ายจากอุปกรณ์มือถือ อย่างสมาร์ทโฟส เช่น iPhone หรือ อุปกรณ์บันทึกภาพจริงจังอย่าง กล้องดิจิตอลทั้ง  Mirrorless หรือ DSLR ซึ่งล้วนเป็นภาพที่มีสีสัน หรือ เราเรียกกว่า “ภาพสี” แต่ในทาง Computer Vision หรือ Image Processing นั้น ได้ให้นิยามเกี่ยวกับ “ภาพดิจิตอล” (Digital Image) ว่าจะประกอบด้วย จุดที่มีความเข้มเท่ากัน หรือ แตกต่างกัน บนระนาบโคออดิเนท (Coordinate plane) ที่สามารถหาค่า ณ ตำแหน่ง x และ y บนขอบเขตจำกัดได้ โดย กำหนดให้ค่าที่ได้จากฟังก์ชัน f(x,y) แทนด้วย ค่าความเข้มของสีดำ จนถึงสีขาว ซึ่งเราเรียกว่า Intensity หรือ Gray level value ในกรณีที่เป็นภาพขาว-ดำ (Grayscale Image) ค่าความเข้ม นั้นจะเริ่มตั้งแต่สีดำสนิท ไปจนถึงสีขาว ตามความลึกของระดับสี (Bit depth) เช่น ถ้าภาพมี Bit depth = 8 Bit ความลึกของสีจะเท่ากับ 2 ^ 8  ซึ่งจะเท่ากับ 256 ค่า คือ 0-255 นั่นหมายความว่า ค่า Intensity ณ ตำแหน่ง x,y จะเริ่มตั้งแต่ 0 คือ สีดำ ไปจนถึงค่า 255 ซึ่งเป็นสีขาว หรือ สว่างที่สุด เมื่อเราได้จุดหลาย ๆ จุดที่มีความเข้ม เหมือนหรือต่างกันบนระนาบโคออดิเนท (Coordinate plane) จึงทำให้เกิดเป็นลักษณะที่แตกต่างกันออกไป หรือ เกิดเป็นภาพที่เรามองเห็นขึ้นมานั่นเอง

 

Intensity f(x,y) on Coordinate plane

 

จากภาพตัวอย่าง ค่า Intensity (Index) ณ ตำแหน่ง f(x,y) = f(84,236) = 99

 

ระนาบโคออดิเนท (Coordinate plane) หนังสือบางเล่ม จะกล่าวว่าเป็น Spatial plane หรือ Spatial domain แทน ซึ่งไม่ต้องสับสน ให้จำว่าที่กล่าวมานั้น คือ ระนาบ x,y เท่านั้นเอง


ผมจะค่อย ๆ ทยอยลงบทความเกี่ยวกับการเขียนโปรแกรม Image Processing ไว้ที่นี่ให้ครบถ้วนทั้งทฤษฎีและปฏิบัติ เพื่อให้เป็นคลังข้อมูลสำหรับคนที่ต้องการศึกษาต่อ ๆ ไป หากท่านชอบ ไปเยี่ยมชมเราได้ที่ https://www.facebook.com/appdikrub ครับ