OpenCV (cv2) เป็นไลบรารีประมวลผลภาพยอดนิยมใน Python การแสดงภาพพื้นฐานทำได้ด้วย cv2.imread() โหลดภาพ cv2.imshow() แสดงในหน้าต่าง cv2.waitKey() รอปุ่มกด และ cv2.destroyAllWindows() ปิดหน้าต่าง
ขั้นตอนการทำงาน
- นำเข้า
cv2 - โหลดภาพด้วย
cv2.imread("filename", flags):cv2.IMREAD_COLOR- สี (ค่าเริ่มต้น)cv2.IMREAD_GRAYSCALE- ขาวดำcv2.IMREAD_UNCHANGED- รวม Alpha channel
- แสดงภาพด้วย
cv2.imshow("window_name", image) - รอการกดปุ่มด้วย
cv2.waitKey(0)(0 = รอไม่มีเวลา) - ปิดหน้าต่างทั้งหมดด้วย
cv2.destroyAllWindows()
ตัวอย่างโค้ด
import cv2
img = cv2.imread("baseball.png", cv2.IMREAD_COLOR)
cv2.imshow("baseball", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
ฟังก์ชันเพิ่มเติมที่มีประโยชน์
| ฟังก์ชัน | คำอธิบาย |
|---|---|
cv2.imwrite("out.jpg", img) | บันทึกภาพ |
cv2.resize(img, (w, h)) | ปรับขนาดภาพ |
cv2.cvtColor(img, cv2.COLOR_BGR2RGB) | แปลง BGR→RGB (สำหรับ Matplotlib) |
img.shape | ขนาดภาพ (height, width, channels) |
img.dtype | ชนิดข้อมูล (มักเป็น uint8) |
การใช้กับ Matplotlib
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("image.jpg")
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.axis('off')
plt.show()
ข้อควรระวัง
- OpenCV ใช้ลำดับช่องสี BGR (ไม่ใช่ RGB)
waitKey(1)ในลูปสำหรับวิดีโอ/Real-time- ใน Jupyter Notebook ใช้
cv2_imshowจาก google.colab.patches แทน - Headless server ต้องใช้
cv2.imwriteแทนimshow
การประยุกต์ใช้
พื้นฐานของ Computer Vision: การตรวจจับวัตถุ การรู้จักใบหน้า การประมวลผลวิดีโอ Augmented Reality และการวิเคราะห์ภาพทางการแพทย์