admin 管理员组文章数量: 887021
搞了下Win的USB相机今天来写写
1.记录日常
2.抛砖引玉献丑了,还有一些问题没有解决
Win 下 Usb相机视频流播放及查看属性
-
相机视频流播放
开始菜单->相机
就可以获取实时视频流,上边有个转换按钮可以转换不同的摄像头 -
相机属性查看
连接上usb设备后,我的电脑-> 管理->设备管理器 ->照相机 ->对应的相机
左键双击或者右键属性->详细信息就可以查看属性包括:
{设备名称,硬件ID,设备实例路径,哈希ID,序列号(有的可能没有),…}
属性含义
VID - 供应商标识
PID - 产品表识
REV - 修订版本
IserialNumber - 序列号
设备路径 - Windows操作系统依赖一个唯一的设备路径来唯一地识别连接到系统的每个USB设备/接口。设备路径字符串用于与USB设备通信,被传递给Win32 API函数CreateFile()
容器ID - 系统提供的容器 ID 通过多种方式生成。 此决定基于设备中包含的信息。 此信息是从 ACPI 设置、USB 总线驱动程序和 USB 集线器检索的
GUID - 标志你安装的设备是属于一个什么类
理论上可以通过VID 和 PID 来唯一标识一个相机,但是在实际使用过程中同时使用同一厂家的同一型号相机而 绝大多数“山寨”【没用过贵的所以不知道情况】会出现 设备名称,VID/PID一致的情况而导致无法进行区分设备;如下图某宝的俩台一样的设备:名称VID/PID完成一样
获取相机视频流
通过 Opencv 获取获取还是比较简单方便,难点是不知道 index 和 usb相机的对应关系
#include <opencv2/opencv>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture camera(0) // 从0开始有几个相机就到自然数几;调用可以依次打开不同的相机
if(!camera.isOpened())
{
std::cout<<"The camera is not turned on!!!"<<std::endl;
return 1;
}
while (true)
{
Mat frame;
camera >> frame;
if(frame.empty())
break
else
{
imshow("test",frame);
}
return 0;
}
区分相同 Usb相机设备
先说结论:获取到设备实例路径 或 容器ID 来区分
1.设备实例路径不同
打开相机采用的opencv库之前有大佬看过opencv的源码定位到获取usb设备的代码:是采用directshow;代码如下
.h文件
#pragma once
#include<iostream>
#include<algorithm>
#include<vector>
#include<dshow.h>
#include<tuple>
#pragma comment(lib,"Strmiids.lib")
using namespace std;
class ListDivice
{
public:
void Test(string usbpath);
int listDevicesTuple(vector<tuple<string, string>>& list); // 这里获取了名称和设备路径ID,可以自己选择增删
};
.cpp文件
#include "ListDivice.h"
void ListDivice::Test(string usbpath)
{
vector<tuple<string, string>> deviceName;
int deviceNum = listDevicesTuple(deviceName);
for (int i = 0; i < deviceNum; i++)
{
string tmp = get<0>(deviceName[i]);
int a = tmp.find("usb");
int b = tmp.find("{");
tmp = tmp.substr(a, b - a - 1);
while (tmp.find("#") != -1)
{
int postion = tmp.find("#");
tmp.
版权声明:本文标题:Window下USB相机使用及同批次相机区分 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726376616h948025.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论