ก่อนอื่นแอปจะหาหน้าของคุณบนรูปภาพ
ด้วยข้อจำกัดหลายๆอย่าง แอปอาจตรวจไม่พบหน้าของทุกคนในภาพ
ควรหันหน้าตรงเพื่อง่ายต่อการตรวจจับ
เมื่อเจอภาพแล้วหน้าแล้ว จะดึงพื้นที่ประมาณ 10% กลางหน้าออกมา
จะได้จุดสีบริเวณจุดสีฟ้ากลางภาพแบบด้านล่าง
(เป็นภาพจำลองอาจไม่เท่าสัดส่วนที่แอปทำ)
จากนั้นแอปจะเรียกทุก pixel ในบริเวณที่เลือกออกมา
แบ่งสีเป็น แดง เขียว น้ำเงิน จากนั้นแอปจะหาค่าเฉลี่ยของสีแต่ละสี
โดยเอาค่าสีในแต่ละ pixel บวกกันแล้วหารด้วยจำนวนพิกเซลทั้งหมด
จากนั้นแอปหาค่าความขาวผ่านทาง Relative Luminance ดังสมการ
Y = 0.2126 R + 0.7152 G + 0.0722 B
เมื่อ Y คือ ค่าความสว่าง (Relative Luminance)
R คือค่าเฉลี่ยของ Pixel สีแดง
G คือค่าเฉลี่ยของ Pixel สีเขียว
B คือค่าเฉลี่ยของ Pixel สีน้ำเงิน
จากนั้นหารด้วย 255 แล้วคูณร้อยเพื่อแปลงเป็นเปอร์เซ็นต์
(สี RGB ของคอม มีค่าอยู่ที่ 0 - 255)
(สี RGB ของคอม มีค่าอยู่ที่ 0 - 255)
เท่านี้เราก็จะได้เลขเปอร์เซ็นต์ความขาวแล้ว
โดยชื่อคำเรียกของสีแต่ละสี ตามการเรียกของ Fitzpatrick ดังนี้
โดยแยกเป็น 6 สีได้แก่ ขาวซีด,ขาว,ชา,มะกอก,น้ำตาลและดำ
โดย Fitzpatrick ได้แบ่งคำเรียกออกตามสเกลของ Von Luschan
ซึ่งสเกลของ Von Luschan มีดังนี้
โดยเราหา Relative Luminance ที่ต่ำสุดของแต่ละช่วงสีจึงได้ค่าประมาณออกมาว่า
มากกว่า 96% เป็นสีขาวซีด
มากกว่า 92% เป็นสีขาว
มากกว่า 90% เป็นสีชา
มากกว่า 76% เป็นสีมะกอก
มากกว่า 38% เป็นสีน้ำตาล
ต่ำกว่า 38% เป็นสีดำ
ขออธิบายเพิ่มเติมว่าทำไมใช้ในมือถือแล้วค้าง
หลายๆท่านคงเคยเล่นแอป How-Old แล้วไม่เห็นค้าง
เพราะว่าสถานที่ในการประมวลผลมันต่างกันครับ
How-old นั้นจะส่งรูปไปประมวลผลที่เซิฟเวอร์ของ Azure
ทำให้อุปกรณ์เพียงรอคำตอบจาก Azure เท่านั้น
แต่ Pure's app จะดึงโค้ดมาประมวลผลที่เครื่องของผู้ใช้
ทำให้เครื่องที่มีความสามารถในการประมวลผลต่ำกระตุกและค้างได้ครับ
ทำให้เครื่องที่มีความสามารถในการประมวลผลต่ำกระตุกและค้างได้ครับ
ทั้งนี้ผมไม่มีความประสงค์ให้เหยียดสีผิวแต่ประการใด
แอปนี้สร้างขึ้นเพื่อความสนุกเท่านั้น
แอปนี้สร้างขึ้นเพื่อความสนุกเท่านั้น
หากสนใจ สามารถอ่านที่มาของแอปนี้ต่อได้ที่นี่