搜索可用摄像头

今天涉及到一个摄像头的项目,但是该项目是提供给第三方的,所以也就不大清楚摄像头的id。这里讲述三种搜索可用摄像头的实现代码

1、PyCameraList

这个是最简单的

from PyCameraList.camera_device import list_video_devices, 

cameras = list_video_devices()

camera_id_list = []
for idx in range(0,len(cameras)):
    camera_id = cameras[idx][0]
    camera_id_list.append(camera_id)

但是这种方法需要安装PyCameraList ,目前能找到的版本只有

PyCameraList-1.0.0-cp36-cp36m-win_amd64.whl 

因此,该方法并不通用

2、pygame

这个是借助 pygame中camera来实现的

import pygame.camera
pygame.camera.init()
camera_id_lis = pygame.camera.list_cameras()

这种返回的结果形式是字符串形式的

["/dev/video0","/dev/video1"]

如果要用opencv处理,需要对上述字符串进行解析。

3、利用opencv遍历方法来实现

import cv2


camera_id_list = []
for device in range(0,100):
    stream = cv2.VideoCapture(device)

    grabbed = stream.grab()
    stream.release()
    if not grabbed:
        continue

    camera_id_list.append(device)

上述代码从0~100作为id号进行遍历,搜索到可用的id记录下来。

你可能感兴趣的:(python,python,opencv)