Pixel and Color

Pixel

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

ตัวอย่าง

ภาพมีขนาด 600x450 หมายความว่า ภาพกว้าง 600 และสูง 450 พิกเซล ถ้าเทียบเป็นตารางพิกเซลจะได้ 600 คอลัมน์และ 450 แถว โดยรวมแล้วมี 600 x 450 = 270,000 พิกเซล

พิกเซลส่วนใหญ่แสดงเป็นสองลักษณะ คือ ระดับสีเทา (Gray scale) และสี (RGB) ในภาพระดับสีเทาแต่ละพิกเซลมีค่าระหว่าง 0 ถึง 255 โดยที่ค่า 0 จะตรงกับ "ดำ" และ 255 เป็น "สีขาว"

ภาพสี (RGB) ในหนึ่งพิเซลจะประกอบไปด้วย 3 ค่า คือ สีแดง (Red) สีเขียว (Green) และสีน้ำเงิน (Blue) โดยทั้งสามค่าจะมีค่าความเข้มอยู่ในช่วง 0 ถึง 255 เช่นเดียวกับภาพระดีบสีเทา สามารถเขียยนให้อยู่ในรูป tuple ได้ดังนี้ (R,G,B)

หากเปรียบเทียบภาพเป็นตาราง จุดพิกัดเริ่มต้น (0,0) ของภาพจะอยู่ที่มุมซ้ายบน และจุดพิกัดสุดท้าย (x,y) ของภาพจะอยู่ที่มุมล่างขวาของภาพ ซึ่งจุดพิกัดสุดท้ายจะมีขนาดเท่ากับขนาดของภาพเสมอ ดังภาพตัวอย่างต่อไปนี้

Example:

import cv2
import imutils 

image = cv2.imread("path/your/image.jpg")
image = imutils.resize(image,width=400)

(h, w) = image.shape[:2]
(b, g, r) = image[0, 0]
print("Pixel at (0, 0) - Red: {r}, Green: {g}, Blue: {b}".format(r=r, g=g, b=b)) 

image[0, 0] = (0, 0, 255)
(b, g, r) = image[0, 0]
print("Pixel at (0, 0) - Red: {r}, Green: {g}, Blue: {b}".format(r=r, g=g, b=b))

cv2.imshow("Original", image)
cv2.waitKey(0)
  • บรรทัดที่ 1-2 : การเรียกใช้ไลบารี่ที่เกี่ยวข้อง

  • บรรทัดที่ 6 : รับตัวแปรขนาดลำดับที่ 0 และลำดับที่ 1 ของภาพ โดยที่ขนาดของภาพจะถูกเก็บในลักษณะอาร์เรย์ ซึ่งจะเรียงจาก ความสูง (h) ความกว้าง (w) และช่องสีของภาพ (3 สี) ตามลำดับ

  • บรรทัดที่ 8 รับตัวแปรค่าสีที่ตำแหนงเริ่มต้น (0,0) ของภาพ โดยค่าสีของภาพจะถูกเก็บในลักษณะอาร์เรย์ ซึ่งจะเรียงจาก สีน้ำเงิน (Blue) สีเขียว (Green) และสีแดง (Red) ตามลำดับ

Conversion Color

การแปลงภาพจากพื้นที่สีหนึ่งไปยังอีกที่หนึ่ง

$ cv2.cvtColor(image, flag)

Parameter:

  • image => ภาพที่ต้องการนำมาใช้งาน

  • flag => กำหนดประเภทของการแปลง

flag ที่นำมาใช้

  • cv2.COLOR_BGR2GRAY = แปลงภาพสี BGR เป็นภาพสีเทา

  • cv2.COLOR_BGR2HSV = แปลงภาพสี BGR เป็นภาพสี HSV

Example:

import cv2
import imutils 

image = cv2.imread("path/your/image.jpg")
image = imutils.resize(image,width = 400)
cv2.imshow("Original",image)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

cv2.imshow("Gray Scale",gray)
cv2.waitKey(0)

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University