Java + OpenCv 根据PID/VID调用指定摄像头

根据摄像头硬件标识VID&PID获取OpenCV打开照相机所需参数index索引下标 阅读详情

问题:

        主机接入了多个USB摄像头,传统的OpenCv是用摄像头插入usb的下标调取的,如过只接入一个摄像头那直接使用capture.open(0);这种方式调用没有任何问题,多个的话,就会出现问题,因为USB拔插时候对应摄像头对应的下标会发生变化。

解决思路:

        使用硬件设备的唯一标识,就是PID和VID来确定USB摄像头的下标,这样不管下标怎么变,我们都是通过PID和VID调起的,就成功解决我们的问题。

话不多说,直接上步骤:

一、首先查看硬件设备的PID/VID编号

        我的电脑是win10这里只说明win10的步骤,其他系统自己百度怎么查看。

        点击此电脑-->管理-->设备管理器--->照相机--->点击USB摄像头属性--->详细信息---->硬件ID

就可以看到PID/VID编号了

        

 

 

 二、添加动态库

        我也是看到大佬写的改了一下,大佬只写了python 和 C 的调用方法

        大佬博客:根据摄像头硬件标识VID&PID获取OpenCV打开照相机所需参数index索引下标_MylesYYY的博客-优快云博客_c++ cameraindex 怎么获取

动态库地址:

CvCameraIndex: 根据摄像头硬件标识(如vid_1234&pid_4321)获取OpenCV打开摄像头时的参数下标index


这里我说明一下Java版本的

        需要下载jna.jar添加到项目的环境中

代码如下

import com.sun.jna.Library;
import com.sun.jna.Native;

public class OpenCv {

    public interface CallMTScaleLibrary extends Library {
        CallMTScaleLibrary INSTANCE = Native.load("C:\\Users\\admin\\Desktop\\cv-camera-index-master\\cv-camera-index-master\\lib\\CvCameraIndex_x64", CallMTScaleLibrary.class);
             //public int Transfer_Ethernet_EX(String filename, int key);
             public  int getCameraIndex(String hwid) ;        
        }
    public static void main(String[] args) {
        
        int n = CallMTScaleLibrary.INSTANCE.getCameraIndex("vid_0BC8&pid_5880");
        System.out.println("相机编号:"+n);
    }
}

这样我们就实现了Java 使用opencv调用指定的USB摄像头

感谢阅读,留个免费的小赞哦

树莓派视觉开发实战:从环境搭建到OpenCV应用全解析 计算机视觉作为人工智能的核心领域,通过模拟人类视觉系统,赋予机器感知和理解图像信息的能力。其基本原理涉及图像采集、处理、分析和理解,核心技术包括特征提取、目标检测与识别等。在嵌入式与物联网场景中,计算机视觉技术能实现智能监控、机器人导航、工业检测等应用,具有极高的工程价值。本文聚焦于树莓派这一低成本硬件平台,深入探讨如何构建高效的视觉开发环境。通过对比官方Camera Module与USB摄像头的性能差异,并结合OpenCV库的优化编译方法,为开发者提供从驱动配置到算法部署的完整解决方案。文中涵盖相机标定、 阅读详情

相关推荐

Vue 使用 navigator.mediaDevices.getUserMedia 调用本地摄像头实现录像以及拍照功能

目录前言API`MediaDevices.getUserMedia()`拍照功能实例完整代码实现效果录像功能实例完整代码实现效果总结 前言 最近在做开源实例: Vue.js 实战系列之实现视频类WebApp的项目(仿抖音App)【感兴趣的小伙伴可以看一下】,其中就有一个功能是视频的拍摄发布(摄像头调用,视频录制等功能),所以特意整理一个Vue如何使用该API调用本地摄像头实现录像拍照功能。 本文主要包括前端调用本地摄像头实现拍照、录像的使用实例、应用技巧、基本知识点总结和一些需要注意的事项,在项目开发中具有

XH_jing的博客 3万+

用Java巧妙利用线程的应用(3)——调用系统摄像头

本文介绍使用Java和Sarxos库获取摄像头画面并实时显示在图形界面中的方法。文中设计了摄像头模块、界面模块、画面获取与显示模块、界面绘制模块。程序获取摄像头后通过界面更新触发重绘以显示最新摄像头画面。环形获取画面并调用重绘实现近实时显示,基本完成简单的摄像头实时显示功能。文中内容全面,代码示例具参考价值,使用Java AWT和Swing组件实现基于摄像头的图形界面程序,为后续开发奠定基础。

weixin_47166204的博客 2548

使用OpenCV原生方法遍历摄像头设备及调用Java

在本文中,我们将探讨如何使用OpenCV的原生方法来遍历摄像头设备并调用Java代码。这个示例程序演示了如何捕获摄像头图像,并对图像进行人脸检测和绘制。首先,确保您已经正确安装了OpenCV库,并设置好Java开发环境。接下来,我们尝试打开摄像头设备,如果无法打开,则输出错误消息并返回。放置在与Java源代码文件相同的目录中,并且已经将OpenCV的库文件正确配置。然后,我们进入一个无限循环,从摄像头读取图像并进行人脸检测和绘制。,它将用于显示摄像头捕获的图像。首先,我们导入了所需的OpenCV类。

UtdPatch的博客 247

java FFMPEG调取usb摄像头,截取视频,添加文字和时间水印

最近工作中接触到了视频监控这块东西,最开始使用的是海康摄像头,因为有文档还有技术对接,做起来基本还算顺利,但是后来需求要求支持usb摄像头,最开始百度了一圈,用啥opencv javacv之类的技术,感觉都挺麻烦的,最终发现了FFMPEG可以很好的解决业务中的问题,在这里记录一下 查看本机的设备信息(包含摄像头,音频等) (ps:请先切换到ffmpeg的bin目录下打开cmd命令) 命令: ffmpeg-list_devicestrue-...

Cool_Wayen的博客 4648

【信息科学与工程学】【控制科学】第十二篇 微型计算机控制技术01

更精确的经典模型:I1在第5周期WB结束,I2最早可在第6周期进入EX,但I2在ID阶段就需要R1,因此I2的ID需在第6周期,而I1的WB在第5周期,所以I2的ID可以紧接在第6周期,但中间仍有一个stall(因为I1的EX结果要等到MEM之后才能转发给ID?有优先级继承后,Task_L被提升优先级,不会被Task_M抢占,阻塞时间缩短为Task_L剩余执行时间(9ms),仍可能超过10ms,但可通过调整任务周期或使用中断处理缓解。电感L=10μH,输出电容C=100μF,ESR=5mΩ。

weixin_49199313的博客 8638

java opencv 调用摄像头实现拍照及本地保存 支持上传FTP 路径配置

java opencv 调用摄像头实现拍照及本地保存 支持上传FTP 可以配置本地路径及FTP路径

JavaCV调用摄像头

安装Javacv 简介:javacv是使用java的视觉库,包含了Opencv、FFmpeg等接口 github-javacv 若是Intellij IEDA可直接新建Maven项目,在pom.mxl中添加依赖,IDEA将自动下载依赖库 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://ma...

北京-大白的博客 2305

基于Java代码的USB摄像头采集与显示

基于Java代码的USB摄像头采集与显示代码,包含了所有的源代码,是一个很好学习材料。

java调用usb摄像头

一、采用ocx的方式也就是activex插件的模式调用本地的摄像头 一般来说 调用外接的usb摄像头成功率会高一点,某些笔记本有时会无法成功调用自带的摄像头 如果采用这种方式,首先要处理的就是设置ie浏览器的安全模式,如果不改变的话,activex插件是无法安装的。 经过上述操作之后,就可以正常调用了。 二、采用基于opencv开发的javacv开源工具进行

chuanren1991的博客 1万+

从URDF到仿真动画:基于Simulink、Simscape与S-Function的机械臂一体化建模与控制

本文详细介绍了从URDF文件到高保真仿真动画的一体化机械臂建模与控制流程。通过整合Simulink、Simscape与S-Function,构建了包含物理特性的虚拟机械臂模型,并实现了自适应滑模等高级控制算法的嵌入与验证。该流程打通了从机械设计到控制算法验证的闭环,为机器人开发提供了高效的仿真平台。

cnn8visionary的博客 699

新卡尝鲜记:RTX 5070Ti适配PyTorch生态的实战避坑指南

本文分享了RTX 5070Ti适配PyTorch生态的实战经验。针对CUDA 12.8兼容性问题,详细介绍了安装PyTorch Nightly版本、手动编译xformers库以及寻找PyTorch3D第三方预编译包的完整流程与解决方案,帮助用户快速搭建可用的深度学习开发环境。

weixin_29094775的博客 289

Opencv根据USB摄像头PID\VID号,获取对应摄像头索引

1.引言 电脑插多个USB摄像头时,当插拔或者开机之后,Opencv对应的摄像头索引会发生改变,导致Opencv打开摄像头会开错,比如笔记本自带一个摄像头,插上一个USB摄像头时,有时自带的摄像头索引是0,有时是1。十分困扰,因此本文通过获取摄像头设备的VID与PID号(这两个号是出厂自带的,不会发生改变),获取对应的Opencv索引值,打开摄像头。为了方便使用,本人将其导出动态库文件,并采用C++或Python调用该动态库。 2.C++程序导出动态库 windows下获取所有摄像头VIDPID,及其

qq_41043389的博客 1万+

【推荐100个unity插件】动画重定向,快速在不同角色间共享动画,共用非人形Humanoid(泛型generic)动画——Retarget Pro

Retarget Pro是一款高效的Unity动画重定向工具,可快速在不同角色间共享动画。主要特点包括:1分钟快速设置,支持编辑器和运行时重定向;适用于人形、动物、武器等各类角色;提供基础重定向、IK重定向和FPS专用重定向三种功能模块;通过Rig组件和骨架资产实现骨骼链匹配,支持批量处理。插件包含示例项目和预设资源,操作简便且效果优于Unity原生Humanoid系统,特别适合处理手指等精细动画。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 548

Windows系统使用javacv获取USB摄像头图像并保存

目:获取Windows系统笔记本自带摄像头,者连接Windows系统的usb摄像头视频画面,并保存图像到电脑。 一、依赖库说明 源码git地址:bytedeco/javacv: Java interface to OpenCV, FFmpeg, and more (github.com)https://github.com/bytedeco/javacv javacv jar包下载地址:Releases · bytedeco/javacv (github.com)https://github.com/

May-gemini的博客 5766

Python 爬虫实战:亚马逊 + eBay 商品信息跨平台抓取(价格 / 销量 / 评价对比)

亚马逊和 eBay 是全球知名的电商平台,拥有海量的商品信息。对于消费者来说,比较不同平台上的商品价格、销量和用户评价可以帮助他们找到性价比最高的商品。对于商家而言,了解竞争对手的商品信息有助于优化自身的产品策略和定价策略。然而,手动在两个平台上逐一比较商品信息是非常耗时且低效的。因此,开发一个能够自动抓取并对比这两个平台商品信息的爬虫工具具有重要的实际意义。

yansideyucsdn的博客 617

FPGA设计-Vivado的Off-Chip Termination设置问题

经常遇到在FPGA设计时,很多人很迷惑这些关于硬件的终端匹配怎么设置,Vivado的Off-Chip Termination设置问题,这里就详细说一下这个问题。

whm128的博客 2727

Java实用功能 - 调用电脑摄像头

使用Java中的OPenCv库调用摄像头

2301_76481038的博客 2047

〖Python接口自动化测试实战篇④〗- 接口自动化测试详解

[接口测试] 是相对来说和我们的功能测试 [最为接近的一种自动化测试手段] ,所以我们首先来学习接口测试的内容。 实现接口的开发与接口的测试,在我们的思维上、想法上、面向的态度上都是不一样的。所以大家要有一个思维上的转换,要认识了解一下 接口测试到底是做什么的、它的功能、意义在哪里。...

易编橙 · 终身成长社群,相遇已是上上签! 5万+

Java SDK调用 海康网络摄像头 多摄像头同时预览 并取流

最近也遇到了调用海康多个摄像头实现同时预览的需求,不过官方demo里并没详细的案例,上网查了下资料,也找不到对应的解决方案 ,电话咨询海康技术,没接过,信息没回过。这里就不对海康技术支持多作评价了,废话不多说。上方案!...

qq_46380138的博客 2万+

基于LLM的电商数据分析系统

随着电商行业的蓬勃发展,每天都会产生海量的数据,这些数据包含了用户的行为信息、商品信息、销售数据等。如何从这些繁杂的数据中提取有价值的信息,为电商企业的决策提供支持,成为了一个关键问题。基于LLM的电商数据分析系统的目的就是利用大语言模型强大的自然语言处理和数据分析能力,对电商数据进行深入挖掘和分析,帮助企业了解市场趋势、用户需求、商品销售情况等,从而制定更加合理的营销策略、优化商品库存管理、提升用户体验等。本系统的范围涵盖了电商领域的多个方面,包括用户行为分析、商品分析、销售数据分析等。

AI Python 编程之道的博客 808

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8314

Java学习之接口

接口、抽象方法、抽象类、public修饰符、实现接口

wjkqq0921的博客 587

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java 怎么调摄像头

调用 USB 摄像头的方式大多依赖于系统的 VideoCapture 类,例如前面提到的 OpenCV 提供了良好的接口。对于多摄像头场景,可以通过传递不同的设备 ID(如。根据具体应用的需求,选择合适的库和协议来实现功能。条码识别(包括 QR 码)可以结合摄像头获取图像,再通过图像处理和解码算法实现。这些库可以处理通过串口发送的 ASCII 或二进制数据。网口设备(如网络秤或基于 TCP/IP 协议的设备)可以通过 Java 的。对于串口设备(如条码扫描器、秤等),可以使用 Java 的。

大东码字 1158

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java实现调用摄像头拍照

使用webcam-capture实现调用电脑摄像头并拍照

m0_65695920的博客 9906

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 调用摄像头抓拍并转base64

Java调用摄像头,图片转base64

sj_liu的博客 533

如何在inf文件中修改pid、vid

Inf文件即Device Information File(设备信息文件),用于引导驱动程序(*.sys)的安装。它实质上是一个文本文件,可以用记事本工具打开查看和编辑。 简单介绍一下USB设备驱动程序的安装过程: 1. 当USB设备连接到计算机上时,系统从USB设备中获取设备描述符,读取供应商ID(Vendor ID)和产品ID(Product ID),即VID和PID,得到设备的硬

Winston 2万+
上一篇: Soket 聊天室
下一篇: win10 家庭版 gpedit.msc 找不到策略组 解决方法 亲测有效
Java程序之猿
博客等级 码龄9年 2599粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值