import cv2
|
import win32com.client
|
|
class CAM_UTIL:
|
def __init__(self, cam1_name='USB Camera', cam2_name="PC Camera",):
|
self.webcam_list = None
|
self.cam1 = cam1_name
|
self.cam2 = cam2_name
|
self.list_webcams()
|
|
|
|
|
# 获取摄像头列表
|
def list_webcams(self):
|
# 创建一个WMI客户端实例
|
wmi = win32com.client.GetObject("winmgmts:")
|
webcams = wmi.InstancesOf("Win32_PnPEntity")
|
# 创建摄像头和索引字典
|
webcam_dict = {}
|
index = 0
|
for device in webcams:
|
name = getattr(device, 'Name', None)
|
pnp_class = getattr(device, 'PNPClass', None)
|
if pnp_class == 'Camera':
|
# 将设备名字和索引添加到字典中
|
print(f"{name},{pnp_class}")
|
if name is not None and self.cam1 in name:
|
|
# 将设备名字和索引添加到字典中
|
webcam_dict[self.cam1] = index
|
index += 1
|
elif name is not None and self.cam2 in name:
|
|
# 将设备名字和索引添加到字典中
|
webcam_dict[self.cam2] = index
|
index += 1
|
self.webcam_list = webcam_dict
|
|
print(webcam_dict)
|
# 按名称重新排序
|
webcam_dict = dict(sorted(webcam_dict.items(), key=lambda x: x[0]))
|
print(webcam_dict)
|
return webcam_dict
|