Linux通过vidpid找到摄像头对应的索引
准备条件
- 安装udev: sudo apt-get install libudev-dev
- 项目引入头文件:#include <libudev.h>
- 项目添加:cmake添加udev库 libudev.so
代码实现
//get vidpid->index
int GetCameraId(int &id,std::string vid,std::string pid)
{struct udev *udev = NULL;struct udev_enumerate *udev_enumerate = NULL;struct udev_list_entry *list_entry = NULL;int count = 0;udev = udev_new(); if (udev == NULL){loge("udev null");return -1;} udev_enumerate = udev_enumerate_new(udev); if(udev_enumerate == NULL){loge("udev_enumerate null");udev_unref(udev);return -1;}udev_enumerate_add_match_subsystem(udev_enumerate, "video4linux");udev_enumerate_scan_devices(udev_enumerate);udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(udev_enumerate)) {struct udev_device *device = NULL;device = udev_device_new_from_syspath(udev_enumerate_get_udev(udev_enumerate), udev_list_entry_get_name(list_entry)); const char* buff=udev_device_get_property_value(device, "ID_MODEL_ID");if(device != NULL){ if((udev_device_get_property_value(device, "ID_VENDOR_ID") != NULL) && (udev_device_get_property_value(device, "ID_MODEL_ID") != NULL) &&(vid == std::string(udev_device_get_property_value(device, "ID_VENDOR_ID"))) &&(pid == std::string(udev_device_get_property_value(device, "ID_MODEL_ID")))) {//LOG(sw_MS, "device: '%s' (%s) (/dev/video%s) %s:%s\n",//udev_device_get_syspath(device),//udev_device_get_subsystem(device),//udev_device_get_sysnum(device),//udev_device_get_property_value(device, "ID_VENDOR_ID"), // 查询设备信息 udevadm info --query=all --name=/dev/video0//udev_device_get_property_value(device, "ID_MODEL_ID"));//sprintf(PathName, "/dev/video%s", udev_device_get_sysnum(device));id = atoi(udev_device_get_sysnum(device));count++; logd("canemra id:{},count:{}",id,count);break;} udev_device_unref(device); }else{loge(" device null!!");udev_enumerate_unref(udev_enumerate);udev_unref(udev);return -1;}}if(count == 0){loge(" device count error!!");udev_enumerate_unref(udev_enumerate);udev_unref(udev);return -2;}udev_enumerate_unref(udev_enumerate);udev_unref(udev);return 0;
}
opencv打开摄像头
** 根据vidpid获取到的索引打开摄像头**
cv::VideoCapture rgb_cap;cv::VideoCapture ir_cap;std::string rgb_strIndex="/dev/video"+std::to_string(g.rgb_index);logi("rgb path:{}",rgb_strIndex);std::string ir_strIndex="/dev/video"+std::to_string(g.ir_index);logi("ir path:{}",ir_strIndex);//rgbrgb_cap.open(rgb_strIndex);
Linux通过vidpid找到摄像头对应的索引相关推荐
- linux 命令行 webcamera,如何在Linux上运行网络摄像头(Run a Webcam on Linux)?
在Linux上安装.配置和运行网络摄像头可以是一个相当简单的过程,也可以是一个相当复杂的过程.有许多步骤可以帮助顺利安装,每个网络摄像头和计算机设置都会有自己的怪癖和潜在的问题.用最简单的形式,要在L ...
- Linux 如何快速找到运行中的进程
通俗的讲程序是一个包含可以执行代码的静态的文件.进程是一个开始执行但是还没有结束的程序的实例.这篇文章给大家介绍Linux 快速找到运行中的进程的方法,小编觉得很有价值,分享给大家 1 进程概述 通俗 ...
- linux摄像头 自动对焦,基于H3在Linux下驱动OV5640摄像头的方法与流程
技术特征: 1.基于H3在Linux下驱动OV5640摄像头的方法,其特征在于,包括如下步骤: S1打开OV5640摄像头所对应的设备文件/dev/videoX: S2为OV5640摄像头驱动添加读写 ...
- linux 找u盘,linux系统怎样找到U盘?
linux系统怎样找到U盘? 精选 更新时间:2019-10-27 00:12 最满意答案 1. 用FDISK-l 来找,一般U盘会被LINUX认为SCSI设备,如果有SCSI设备那么U盘一般是最后一 ...
- Mac无法找到摄像头问题解决
Mac无法找到摄像头问题解决 参考文章: (1)Mac无法找到摄像头问题解决 (2)https://www.cnblogs.com/davad/p/4906740.html 备忘一下.
- 国外linux内核视频播放器,基于Video for Linux内核的USB摄像头视频信号采集实现
摘要:Video for Linux是Linux中关于视频设备的内核驱动,本文介绍了在Video for Linux内 >> 基于ARM9和USB摄像头的网络视频采集系统设计 基于嵌入式V ...
- Linux(固定USB摄像头硬件端口,绑定前后置摄像头)
修改点如下,通过节点名称判断usb判断video --- a/kernel/drivers/media/usb/uvc/uvc_driver.c +++ b/kernel/drivers/media/ ...
- linux驱动编写(摄像头驱动)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于现代嵌入式设备,特别是手机来说,摄像头是很重要的一个设备.很多同学买手机,一看颜值,第二就看 ...
- php调用linux摄像头,Linux_在Linux操作系统上使用摄像头,我的公家笔记本的摄像头一直 - phpStudy...
我的公家笔记本的摄像头一直没啥用,偶尔用 vmware player 2.0模拟个 msn 用(其实到目前一次都没用过).搞过安全对这东西严重不信任通常都不驱动,忽然想起重案6组那个警察兄弟说搞高科技 ...
最新文章
- windows上的svn服务器迁移到linux
- 终于!北京无人车,今起也能免费坐
- Oracle物理存储结构--文件
- em算法怎么对应原有分类_EM算法原理
- 三步法搞定CTF中的SQL注入题型
- Nginx的动态代理,负载均衡,动静分离的简单使用
- linux下面使用飞书个人版预览doc
- linux下云翔php,《云翔曲谱》目录
- Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java14 的新特性
- CSS中设置单机按钮,实现按下效果
- IDEA修改静态资源(html)不重启,即时生效
- 代理IP如何解决爬虫IP被封
- FMM 大战 LMM - SOFR 企稳 Part III
- PCB中贴片元件封装焊盘尺寸的规范
- 01背包问题---动态规划
- TeraTerm的设定
- 2021全球与中国视频编辑软件市场现状及未来发展趋势
- APT34泄密武器分析报告
- java算法:递归算法
- BotFramework-WebChat 实现点击标签发送消息