コンテンツにスキップ

マルチUSBカメラ

カメラの認識

デバイスで認識されているか確認。

1
ls /dev/video*

サンプル

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import time
import cv2

def _gst_str_mjpeg(id):
    return 'v4l2src device=/dev/video{} io-mode=2 ! image/jpeg, width=1280, height=720, format=MJPG ! jpegdec ! videoscale ! video/x-raw, width=400, height=200 ! videoconvert ! video/x-raw, width=400, height=200 ! appsink'.format(id)

cap = []
for i in range(2):
    cap.insert(i,cv2.VideoCapture(_gst_str_mjpeg(i), cv2.CAP_GSTREAMER))

count = [0,0]
start_time = [time.time(), time.time()]
now = [time.time(), time.time()]

while(True):
    for i in range(len(cap)):
        ret, frame = cap[i].read()
        if ret == 1:
            count[i] += 1
        now[i] = time.time()
        cv2.imshow('usb camera {}'.format(i),frame)
        if now[i] - start_time[i] > 1.0:
            print("camera {} fps: {}".format(i, count[i]))
            count[i] = 0
            start_time[i] = now[i]
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

for i in range(len(cap)):
    cap[i].release()
cv2.destroyAllWindows()