16 พฤศจิกายน 2557

Published 11/16/2557 by with 0 comment

จับภาพจากกล้องหรือเว็บแคมส์ด้วย PyGame ใน Python 3

  ในการจับภาพจากกล้องหรือเว็บแคมส์ใน Python นั้น จะมีโมดูลที่ชื่อว่า OpenCV แต่ตอนนี้เวชั่นเสถียนยังไม่รองรับ Python 3 ดังนั้นผมจึงได้ไปค้นข้อมูลต่าง ๆ จนพบว่า เราสามารถจับภาพจากกล้องเว็บแคมส์ด้วย PyGame ใน Python 3 ได้ครับ
ในบรรดาโมดูลที่ทำงานเกี่ยวข้องกับกล้องหรือเว็บแคมส์ใน Python นั้น ผมได้ค้นแล้วได้ข้อมูลตามนี้

เวชั่น Python   2.7  3.2  3.3  3.4  LINUX  WIN32
-------------------------------------------------------
OpenCV        YES   *    *    *   YES  YES
PyGame        YES  YES  YES  YES  YES    YES
SimpleCV      YES   -    -    -   YES  YES
VideoCapture YES   -    -    -    -     YES

* คือ เวชั่น beta
จะเห็นได้ว่าโมดูลที่รองรับใน Python 3 มีแค่ไม่กี่โมดูล ในบทความนี้ขอเลือกโมดูล PyGame ครับ
โมดูล PyGame เป็นโมดูลด้านการสร้างเกม แต่เราก็สามารถนำมาใช้งานอย่างอื่นได้เหมือนกัน

การติดตั้งโมดูล PyGame ใน Python 3

สำหรับบน Linux ใช้คำสั่ง
pip install hg+https://bitbucket.org/pygame/pygame
สำหรับบน Windows ให้โหลดไฟล์ติดตั้งจาก http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
หรือจะโหลดโค้ดมาติดตั้งเองได้จาก https://bitbucket.org/pygame/pygame

ลงมือจับภาพจากกล้องหรือเว็บแคมส์ด้วย PyGame ใน Python 3

ในโมดูล  PyGame จะมีโมดูลย่อยติดมาด้วยที่ชื่อว่า pygame.camera เป็นโมดูลเกี่ยวกับกล้อง เช่น การจับภาพ และอื่น ๆ เมื่อจับภาพได้แล้ว เราต้องมีการบันทึกภาพที่ได้จับภาพต้องมีการเรียกใช้ pygame.image.save เพื่อบันทึกไฟล์รูปภาพ มาลงมือเขียนโปรแกรมกันเลยครับ
import pygame
import pygame.camera

pygame.camera.init()
cam = pygame.camera.Camera(0,(640,480)) # กว้าง 640 pix, ยาว 480 pix
cam.start()
img = cam.get_image()
pygame.image.save(img,"filename.jpg")

เมื่อเรียกใช้โปรแกรมที่เขียนนี้จะพบว่าจะได้ไฟล์ filename.jpg เปิดเข้าไปจะเป็นภาพที่มาจากกล้องหรือเว็บแคมส์จากคอมของคุณ


ศึกษารายละอียดการใช้งาน  pygame.camera เพิ่มเติมได้ที่ http://www.pygame.org/docs/ref/camera.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)