C#OpenCvSharp有什么方法可以保证打开多个摄像机的顺序?

问题描述 投票:0回答:1
在一个C#环境中,如果我有多个相同的用途和产品连接的USB摄像机,是否有任何方法可以每次识别相同的相机?

,例如,我有两个USB摄像机左右显示,在OpenCvSharp打开摄像头后,我想知道哪个相机显示右侧。

可以仅使用C#执行此类功能? 可以通过使用C/C ++来实现吗? 我目前正在使用C#和OpenCvSharp创建一个应用程序来显示USB摄像头。

相机打开是opencvSharp's

capture = new VideoCapture(0);.

使用

在videocapture()中,按照Windows识别的顺序打开相机。 如果连接了来自同一制造商的多个USB摄像机,则不能保证打开摄像头的顺序。

在我的个人研究中,我发现了一个名为DirectShowlib的Nuget

https://github.com/luthfiampas/directshowlib

DsDevice[] videoDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);

看来,使用getDevicesofcat(filterCategory.videoinputdevice)获得的列表与OpenCV打开它们的顺序相同。 但是,我找不到任何正式的佐证来支持这一点。

我注意到可以简单地通过将它们转换为字符串来区分:

VideoCapture 
我不确定实际返回了什么十六进制数字字符串。它可能只是一个对象地址。

描述了更系统的方法

Herey:
camIndex = 0
cap = cv2.VideoCapture(camIndex)
cap1 = cv2.VideoCapture(camIndex+1)
s = str(cap)
s1 = str(cap1)

c# opencv camera usb-drive
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.