Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การอ่านภาพด้วยโมดูล Python OpenCV

ในโมดูล OpenCV เราสามารถใช้ฟังก์ชัน cv2.imread() เพื่ออ่านภาพได้ เมื่อระบุเส้นทางของภาพ ภาพควรอยู่ในไดเรกทอรีทำงาน หรือต้องระบุเส้นทางเต็มของภาพ

แฟล็กการอ่านภาพ

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

ภาพต้นฉบับ

การอ่านภาพด้วยโมดูล Python OpenCV

ตัวอย่างโค้ด

ตัวอย่างที่ 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 (ขาดรูป)

ผลลัพธ์

การอ่านภาพด้วยโมดูล Python OpenCV

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