Getting Started with Videos

จาก Morange Wiki
รุ่นแก้ไขเมื่อ 07:05, 2 สิงหาคม 2559 โดย Patcharapun (คุย | มีส่วนร่วม) (sa lang he yo)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)

เริ่มต้นใช้เว็บแคม และ บันทึกเป็น Video และเล่นไฟล์ Video

วัตถุประสงค์

  • แสดงผลเว็บแคม และ บันทึกลงเป็นไฟล์วิดีโอ
  • คำสั่งในการใช้งานหลักๆ คือ cv2.VideoCapture(), cv2.VideoWriter()

เริ่มเขียน Source Code


แสดงผล Webcam

  • สร้างไฟล์ Python (eg. sampleVideo.py) สำหรับแสดงเว็บแคม
import numpy as np
import cv2

cap = cv2.VideoCapture(0) 
while(True):
    #Frame-By-Frame
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    ret = cap.set(4,240)
    #Show frame result
    cv2.imshow('frame', gray)
#Press Q On keyboard to quit
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# When Everthing done relase!!
cap.release()
cv2.destroyAllWindows


บันทึกวิดีโอจาก Webcam

  • เพิ่ม Code ต่อไปนี้ใน sampleVideo.py เพื่อบันทึก วิดีโอจากเว็บแคม ลงเครื่อง และสิ้นสุดการบันทึกโดยกดปุ่ม Q บนคีย์บอร์ด
import numpy as np
import cv2

cap = cv2.VideoCapture(0) 
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('sample.avi',fourcc, 20.0, (640,480))

while(cap.isOpened()):
    #Frame-By-Frame
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    ret = cap.set(4,240)
    #Show frame result
    cv2.imshow('frame', gray)
#Press Q On keyboard to quit
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# When Everthing done relase!!
cap.release()
out.release()
cv2.destroyAllWindows


เล่นวิดีโอที่บันทึกไว้

  • สร้างไฟล์ Python ใหม่เพื่อเขียน Code เล่น Video ที่บันทึกไว้ (eg. playVideo.py)
import numpy as np
import cv2

cap = cv2.VideoCapture('sample.avi')

while(cap.isOpened()):
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()


ผลลัพธ์

Selection 049.png