จับภาพวิดีโอจากกล้องด้วย Python

จับภาพวิดีโอจากกล้องด้วย Python

บ่อย ครั้ง ที่ เรา ต้อง ถ่าย สตรีมแบบ สด ด้วย กล้อง ถ่ายรูป ซึ่ง OpenCV มี อินเทอร์เฟซ

ที่ เรียบง่าย สำหรับ สิ่ง นี้ เพื่อ มา จับ ภาพ วิดีโอ จาก กล้อง ( เรา ใช้ เว็บแคม ใน ตัว ของ แล็ปท็อป )

แปลง เป็น วิดีโอ ระดับ สีเทา แล้ว แสดง

ใน การ จับภาพ วิดีโอ คุณต้อง สร้างวัตถุ VideoCapture อาร์กิวเมนต์ อาจ เป็น

ดัชนี อุปกรณ์ หรือ ชื่อ ของ ไฟล์วิดีโอ ดัชนี อุปกรณ์ เป็น เพียง ตัวเลข

เพื่อ ระบุ ว่า กล้อง ตัว ใด โดย ปกติ จะ เชื่อมต่อ กล้อง หนึ่ง ตัว

หลังจาก นั้น คุณ สามารถ จับภาพ ที ละ เฟรม แต่ สุดท้าย อย่าลืม ปล่อย การ จับภาพ

จับภาพวิดีโอจากกล้องด้วย Python

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

จับภาพวิดีโอจากกล้องด้วย Python

cap.read () ส่ง คืนค่า (True / False) ถ้า อ่าน frame ถูกต้อง จะ เป็น True

คุณ จึง ตรวจสอบ ตอนท้าย ของ วิดีโอ ได้ โดย ตรวจสอบ ค่า ส่ง คืน นี้

คุณ สามารถ ตรวจสอบ ว่า มี การ เริ่มต้น หรือ ไม่ โดย วิธี cap.isOpened () ถ้า เป็น True ตกลง มิ ฉะ นั้น ให้ เปิด โดย ใช้ cap.open ()

คุณ ยัง สามารถ เข้า ถึง คุณลักษณะ บางอย่าง ของ วิดีโอ นี้

โดย ใช้ วิธี cap.get (propId) โดยที่ propId เป็น ตัวเลข ตั้งแต่ 0 ถึง 18 ตัวเลข แต่ ละ ตัว แสดง ถึง คุณสมบัติ ของ วิดีโอ

ตัวอย่าง เช่น เรา สามารถ ตรวจสอบ ความกว้าง และ ความสูง ของ เฟรมโดย cap.get (3) และ cap.get (4)

มัน ทำ ให้ ฉัน ได้ 640×480 โดย ปริยาย แต่ ฉัน ต้อง การ แก้ไข เป็น 320×240

เพียง ใช้ ret = cap.set (3,320) และ ret = cap.set (4,240)

การ เล่น วิดีโอ จาก ไฟล์
เหมือน กับ การ จับภาพ จาก กล้อง เพียงแค่ เปลี่ยน ดัชนี กล้อง ด้วย ชื่อ ไฟล์ วิดีโอ

นอก จากนี้ ใน ขณะ ที่ แสดง เฟรม ให้ ใช้ เวลา ที่ เหมาะสม สำหรับ cv2.waitKey ()

หาก น้อย เกินไป วิดีโอ จะ เร็วมาก และ หาก สูงเกิน ไป วิดีโอ จะ ช้า

( นั่น คือ วิธี ที่ คุณ สามารถ แสดง วิดีโอ แบบ สโลว์ โมชั่น ) 25 มิลลิ วินาที จะ ใช้ ได้ ใน กรณี ปกติ

import numpy as np
import cv2

cap = cv2.VideoCapture('vtest.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()

Ref : https://docs.opencv.org/master/dd/d43/tutorial_py_video_display.html

หมาย เหตุท้าย : รับสอนPython
หาก คุณชอบ บทความ นี้ อย่าลืม คลิก❤ ด้าน ล่าง เพื่อ แนะนำ และ ถ้าคุณมีคำถามใด ๆ แสดงความคิดเห็นและฉันจะพยายามอย่างดีที่สุดที่จะตอบ คุณสามารถติดตามฉันบน facebook page (https://www.facebook.com/nextsoftwarehousethailand/) และสามารถส่งอีเมลถึงฉัน

ขอให้ทุกคนมีวันที่ดี 🙂