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

การประมวลผลภาพ (Image Processing) ใน Python

Python มีไลบรารีประมวลผลภาพมากมาย:

  • OpenCV: Computer vision แบบ real-time, 2D/3D features, face/gesture recognition, robotics
  • NumPy & SciPy: จัดการและประมวลผลภาพระดับต่ำ
  • scikit-image: อัลกอริทึมประมวลผลภาพมากมาย
  • PIL/Pillow: ปฏิบัติการพื้นฐาน: thumbnail, resize, rotate, convert format

การติดตั้ง

$ pip install pillow
# หรือ
$ pip install opencv-python numpy matplotlib

PIL/Pillow: การใช้งานพื้นฐาน

เปิดและแสดงภาพ

from PIL import Image
im = Image.open("TajMahal.jpg")
im.rotate(45).show()  # หมุน 45 องศาและแสดง

ดูข้อมูลภาพ

>> im

>>> im.size
(1000, 667)
>>> im.format
'JPEG'

แปลงและบันทึกรูปแบบไฟล์

>> im.save('TajMahal.png')  # JPEG -> PNG

ปรับขนาด (Thumbnail)

>> im.thumbnail((300, 300))
>>> im.show()

แปลงเป็น Grayscale

>> gray = Image.open('TajMahal.jpg').convert('L')  # 'L' = luminosity
>>> gray.show()

OpenCV + Matplotlib: ขั้นสูง

แสดงภาพ Grayscale

import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', im)
cv2.waitKey(0)
cv2.destroyAllWindows()

วาดกราฟบนภาพด้วย Matplotlib

im = cv2.imread('TajMahal.jpg', cv2.IMREAD_GRAYSCALE)
plt.imshow(im, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([])  # ซ่อนแกน
plt.plot([200,300,400], [100,200,300], 'c', linewidth=5)  # วาดเส้นสีซีแอน
plt.show()

สรุป

  • Pillow: เหมาะสำหรับงานพื้นฐาน ง่าย ใช้ได้เร็ว
  • OpenCV: เหมาะ Computer Vision, Real-time, ML/DL
  • scikit-image: อัลกอริทึมเฉพาะทางมากมาย
  • Matplotlib: วาดกราฟ/พล็อตบนภาพ สำหรับการวิเคราะห์

เลือกไลบรารีตามความต้องการ: ใช้ Pillow สำหรับงานง่าย OpenCV สำหรับงานร้ายแรง