ในโมดูล OpenCV เราสามารถใช้ฟังก์ชัน cv2.imread() เพื่ออ่านภาพได้ เมื่อระบุเส้นทางของภาพ ภาพควรอยู่ในไดเรกทอรีทำงาน หรือต้องระบุเส้นทางเต็มของภาพ
แฟล็กการอ่านภาพ
- cv2.IMREAD_COLOR - โหลดภาพสี และจะไม่คำนึงถึงความโปร่งใสของภาพ นี่คือแฟล็กเริ่มต้น
- cv2.IMREAD_GRAYSCALE - โหลดภาพในโหมดสีเทา
- cv2.IMREAD_UNCHANGED - โหลดภาพตามต้นฉบับรวมถึงช่องอัลฟา (alpha channel)
ภาพต้นฉบับ

ตัวอย่างโค้ด
ตัวอย่างที่ 1: การอ่านภาพและบันทึกเป็นภาพสีเทา
import numpy as np
import cv2
my_img = cv2.imread('C:/Users/TP/Desktop/poor/poverty_india.jpg', 0)
cv2.imshow('image', my_img)
k = cv2.waitKey(0) & 0xFF # รอให้กดปุ่ม ESC เพื่อออก
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite('C:/Users/TP/Desktop/poor/poverty_india_gray.jpg', my_img)
cv2.destroyAllWindows()
ตัวอย่างที่ 2: ใช้แฟล็ก IMREAD_GRAYSCALE โดยเฉพาะ
import cv2
import numpy as np
import matplotlib.pyplot as plt
my_img = cv2.imread('C:/Users/TP/Desktop/poor/poverty_india.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows() # หมายเหตุ: ตัวอย่างเดิมมีข้อผิดพลาดคือ destoryAllWindows (ขาดรูป)
ผลลัพธ์

หมายเหตุ: ในตัวอย่างที่ 2 มีข้อผิดพลาดเล็กน้อยคือ cv2.destoryAllWindows() ควรเป็น cv2.destroyAllWindows() นะครับ