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 สำหรับงานร้ายแรง