双免驱相机解决方案(亲测有效)

news/2025/2/12 8:59:17/

前情提要:

因为实验室有一个任务需要同时使用两个免驱相机完成,opencv打开相机后发现一个致命的问题,每次插拔相机,会导致相机开启的那个id变化(0和2对换)

在csdn上找到了这样一篇文章:

Ubuntu18.04 系统下多个USB摄像头名称绑定,固定电脑主机USB端口名,用于解决同一型号的摄像头_CV_51154380的博客-CSDN博客_ubuntu修改usb摄像头名称

写的很好,但是有些地方有一些错误,或者不是很好理解,实际操作成功后,在此写一篇文章便于其他有同样问题的小伙伴查阅。

1.首先在终端输入  

 lsusb

得到结果(示例):

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 021: ID 0c45:6372 Microdia
Bus 001 Device 020: ID 0c45:6371 Microdia
Bus 001 Device 003: ID 046d:c539 Logitech, Inc.
Bus 001 Device 006: ID 8087:0aaa Intel Corp.
Bus 001 Device 002: ID 25a7:fa70  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

注:拔掉某一个再输入,看少了哪一个,就知道是谁了

2.接下来在终端输入:(以video0为例,video1,2,3同理)

 udevadm info --attribute-walk --name=/dev/video0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"
    ATTR{name}=="LRCP HD60fps-01: LRCP HD60fps-0"

比如video2

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/video4linux/video2':
    KERNEL=="video2"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"
    ATTR{name}=="LRCP HD60fps-02: LRCP HD60fps-0"

从这里我们得到的信息是:

名字为LRCP HD60fps-01的相机是video0端口

名字为LRCP HD60fps-02的相机是video2端口

3.编辑新的rules

在终端输入:

 sudo vi /etc/udev/rules.d/VIDEO.rules 

编辑内容如下:
 

KERNEL=="video*",KERNELS=="1-4", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="6372",ATTR{index}=="0" , MODE:="0777", SYMLINK+="cam-2"
KERNEL=="video*",KERNELS=="1-3", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="6371",ATTR{index}=="0" , MODE:="0777", SYMLINK+="cam-1"

解释一下这里的信息分别代表什么:

“1-4”就是步骤2红字部分

idVendor 和 idProduct 就是步骤1得到的设备名字

{index}也是在步骤2加粗部分获取的

SYMLINK自己随便取就好啦~

4.执行以下命令,使udev规则生效:

sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger 

5.检查

终端输入:

ls -l /dev |grep video

得到:

lrwxrwxrwx  1 root root             6 7月   9 16:03 cam-1 -> video0
lrwxrwxrwx  1 root root             6 7月   9 16:03 cam-2 -> video2
crw-rw----  1 root video    29,     0 7月   9 16:03 fb0
crw-rw----  1 root video   238,     0 7月   9 16:03 media0
crw-rw----  1 root video   238,     1 7月   9 16:03 media1
crwxrwxrwx+ 1 root root     81,     0 7月   9 16:03 video0
crw-rw----+ 1 root video    81,     1 7月   9 16:03 video1
crwxrw-rwx+ 1 root root     81,     2 7月   9 16:03 video2
crwxrwxrwx+ 1 root video    81,     3 7月   9 16:03 video3

可以看到已经成功绑定啦

使用opencv c++打开相机:

    VideoCapture capture(0);VideoCapture cam(2);

6.结论

执行以上操作后,实测怎么插拔id都不会再变化了,只要usb口不换就行!


http://www.ppmy.cn/news/706126.html

相关文章

camera fv5专业版2019_Camera FV-5专业版2021

Camera FV-5专业版2021最新版是一款拥有单反级别的拍照神器,几乎所有的拍照参数都是可调的,只为能拍出单反级别的照片,因为专业,所有受到了很多用户的好评,小编带来的这款最新Camera FV-5拍照软件,欢迎前来…

cmd的学习

目录 常用的cmd命令 使用cmd的例子 常用的cmd命令 指令作用盘符名称:盘符切换dir查看当前路径下的内容tree以树形结构输出当前路径下的内容cd进入单级目录cd ..回退到上一级目录cd 目录1\目录2\...进入多级目录cd \回退到盘符目录cls清屏exit退出窗口 (值得注意的…

python: more Layer Architecture and its Implementation in Python and mysql 8.0

mysql 8.0 drop table DuStudentList;#学生表create table DuStudentList (StudentId INT NOT NULL AUTO_INCREMENT comment主键id, #自动增加,StudentName nvarchar(50) comment学生姓名,StudentNO varchar(50) comment学号, #学号StudentBirthday datet…

PHP:提交表单之后出现本页面刷新的情况,导致路径参数消失

问题: 提交表单前 提交表单后 刷新之后,参数消失 解决办法 在提交表单的方法中写入代码携带参数的代码 样例: 实施 header(Location: table_detial.php?table_name.$table_name.);

净水市场新发展 慕辰净水推出全屋净水定制

净水市场新发展 慕辰净水推出全屋净水定制 近年来水污染、空气污染等环境问题日益严峻,给人们的健康带来极大的困扰,“喝一杯健康的水”成为人们迫切的需求。据统计有90%以上的城市水域也遭到污染,这也让人们对生活和饮用水的健康安全问题给予…

制约净水器覆盖率低的因素有哪些净水器哪个牌子好

净水器发展得那么火,为啥覆盖率还是上升缓慢? 净水器行业虽然进入火爆阶段,但不可否认的是市场的覆盖率是很低的,全国的覆盖率才4%左右远远低于发达的国家。我们都知道 净水器从上个世界80年代就进入中国市场,到现在已…

为什么需要全屋净水,喝的水干净不就可以了?

家用净水器近些年虽然普及率高,但新泩全屋净水很多用户都并不了解,很多都是在装修或暖通公司推荐下才听说的,至于有没有必要?如何选择?如何配置?完全没有概念! 据世界卫生组织(WHO)的相关研究资…

反渗透和和超滤究竟有和不同 今天终于讲清楚了

反渗透和和超滤究竟有和不同 今天终于讲清楚了 随着净水器的普及,众多“概念化”的宣传,让消费者卷入了“漩涡”,超滤反渗透傻傻分不清,分辨不出到底该买哪种净水器,哪种适合自己。下面,就来为小伙伴们详解…