CHUSEI 3D Webcam摄像头双目模式使用(转载)

CHUSEI 3D Webcam CHUSEI 3D Webcam 在windows测试程序 CAM5031-V5摄像头测试程序 立即下载
AI摘要

本文介绍如何使用UVC协议和libusb库,通过发送SETCUR指令流,实现在Ubuntu系统上对廉价双目相机进行模式切换,包括双目、单目等不同工作方式。

emm

1、网购了一个便宜的双目相机,没有什么函数可以调用来设置双目模式还是单目模式,只能通过UVC协议来进行相机的模式切换,研究了一下好像可以结合libusb库发送相关指令来实现,但是没有研究出来怎么使用C++,C#实现,后续有时间再看

2、原文链接:https://www.jianshu.com/p/2ce302d588a0

转载内容

嗯,好久不写博客,因为我在忙(bu)着(xiang)写(chao)论文。为我的心理健康着想,我决定搞点东西玩玩。于是我去某宝买了这个:

12大洋买的3d摄像头

实际上这个是一种型号为DS-3DW300的日产3d摄像头,每个头最大分辨率为640x480,最大帧率为30fps,彩色。

焊好usb连接线并连接到ubuntu,用lsusb命令获取其usb描述符信息,可以发现:

$ lsusb -d 18e3:5031 -v
...
bFunctionClass     14 Video
...

好嘛,uvc啊,直接拿Cheese打开:

只能打开一个摄像头

你大爷的。。果然不用官方软件(CHUSEI 3D Camera)就只能打开一个头啊,而且那个软件是windows独占的。

没办法,开心的Hack吧

既然是UVC协议,先考虑SELECTOR_UNIT中有多个输入的情况。呃。。。瞄了一眼刚才lsusb获取的信息发现:

bNrInPins    1

好吧,去他大爷的uvc,还是从官方软件下手吧。切换到windows下,用BusHound抓取在软件中切换双摄像头时,usb总线上的数据:

Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x64). Complements of www.perisoft.net

double

Device - Device ID (followed by the endpoint for USB devices)
(26) USB 视频设备
Length - Total transfer length
Phase - Phase Type
CTL USB control transfer
IN Data in transfer
OUT Data out transfer
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd… - Position in the captured data
Driver - Driver that submitted the command
ntoskrnl : NT Kernel & System 6.1.7601.19135 (win7sp1_gdr.160121-1718)

Device Length Phase Data Description Cmd.Phase.Ofs(rep) Driver


26.0 CTL a1 85 00 08 00 06 02 00 GET LEN 1.1.0 ntoskrnl
26.0 2 IN 02 00 … 1.2.0
26.0 CTL 21 01 00 08 00 06 02 00 SET CUR 2.1.0 ntoskrnl
26.0 2 OUT 50 ff P. 2.2.0
26.0 CTL a1 85 00 0f 00 06 02 00 GET LEN 3.1.0 ntoskrnl
26.0 2 IN 02 00 … 3.2.0
26.0 CTL 21 01 00 0f 00 06 02 00 SET CUR 4.1.0 ntoskrnl
26.0 2 OUT 00 f6 … 4.2.0
…
26.0 2 OUT 76 c3 v. 32.2.0
26.0 CTL a1 85 00 0a 00 06 02 00 GET LEN 33.1.0 ntoskrnl
26.0 2 IN 02 00 … 33.2.0
26.0 CTL 21 01 00 0a 00 06 02 00 SET CUR 34.1.0 ntoskrnl
26.0 2 OUT 04 00 … 34.2.0

嘿,SET CUR。。。翻出UVC协议来看了一眼,果然所有的输出数据都是SET CUR的格式。后面我又抓去了左、右以及红蓝模式切换时的数据,发现这4种情况下总线上的数据都是一样的,只有最后一个SET CUR分别穿出的是1234。

也就是说,只要我们自己构造出相应的SET CUR指令流,就可以实现摄像头工作方式的切换了!于是乎就有了下面这段脚本:

# need pyusb and python binding for opencv
# also need libusb installed
import cv2
import usb.core

cam=cv2.VideoCapture(0)

dev = usb.core.find(idVendor=0x18e3, idProduct=0x5031)
# simulate the SET_CUR sequence
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x50,0xff])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0xf6])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x25,0x00])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x5f,0xfe])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x03])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x02])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x12])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x04])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x76,0xc3])

k=0
while (k!=ord(‘q’)):
ret,frame=cam.read()
cv2.imshow(“cam_test”,frame)

k<span class="token operator">=</span>cv2<span class="token punctuation">.</span>waitKey<span class="token punctuation">(</span><span class="token number">18</span><span class="token punctuation">)</span><span class="token operator">&amp;</span><span class="token number">0xFF</span>
kv<span class="token operator">=</span>k<span class="token operator">-</span><span class="token builtin">ord</span><span class="token punctuation">(</span><span class="token string">'0'</span><span class="token punctuation">)</span>
<span class="token comment">#  print(kv)</span>
<span class="token comment">#  if press 1,2,3 or 4, change the 3d camera mode</span>
<span class="token keyword">if</span> kv <span class="token keyword">in</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
    dev<span class="token punctuation">.</span>ctrl_transfer<span class="token punctuation">(</span><span class="token number">0x21</span><span class="token punctuation">,</span><span class="token number">0x01</span><span class="token punctuation">,</span><span class="token number">0x0a00</span><span class="token punctuation">,</span><span class="token number">0x0600</span><span class="token punctuation">,</span><span class="token punctuation">[</span>kv<span class="token punctuation">,</span><span class="token number">0x00</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

运行脚本并按下“4”,结果如下:

hack成功

可以的,把两张图压缩一半然后当成一张图通过UVC传输,跟我做的那个双摄像头差不多,不过我是利用YUV格式来隐藏两张灰度图(还是我的强一点哈哈哈哈哈哈哈哈哈(。ì _ í。))。

玩完收工,憋论文去~~

webcam_v4l2_x264 一个webcam_v4l2的演示:包含两部分: 1. webcam_server: 抓v4l2, 压缩,发送 2. webcam_shower: 接收,解压,回放 立即下载

相关推荐

NatCam Pro - WebCam API v1.6f1.unitypackage

unity摄像头NatCam Pro - WebCam API 1.6f1 NatCam Pro builds upon NatCam Core by adding major technical features: - Blazing fast camera preview on Android and iOS. - HD. You can view what your phone sees in HD, or even higher resolutions if you wish to. All at a solid fr amerate. - Custom resolutions. NatCam allows you to set the camera's resolution. There are also resolution presets for ease of use. - Photo capture. NatCam allows you to capture high-resolution insta-worthy photos. You also have control over lighting with flash mode access. - Focus. Focus on anything you see. It also features focus modes including autofocus, tap to focus, or even off. - Exposure. Set custom exposure bias for properly exposing those under- and over-exposed scenes your app will face. It also features exposure modes including auto exposure and locked exposure. - Zoom. NatCam supports hardware optical zoom. - Torch. Switch on and off the device's LED torch.

ros学习最便宜的双目Chusei 3d webcam在linux下用 uvcdynctrl命令控制 结贴

ros学习最便宜的双目摄像头Chusei 3d webcam 前两年玩ros淘了个双目研究如何使用,无奈当时知识有限,发了个求学帖子石沉大海,最终这个摄像头被搁置了。 帖子https://bbs.youkuaiyun.com/topics/392285857 前两天群里有同仁发广告。正好是同款,说能在linux下实现双目建图功能。 有资料一阵欣喜。https://github.com/linzhibo...

大志的博客 4202

webcam 插件资源

web在线拍照插件,利用该插件可直接访问电脑usb连接的摄像头。

windows + python + opencv 打开双目摄像头chusei3d

windows + python + opencv 打开双目摄像头chusei3d操作环境出现的问题解决方法程序实现 操作环境 windows7 64位,chusei 3d webcam (单条usb), python3 ,opencv2, 出现的问题 chusei 3d 摄像头只有单条USB线,没法用opencv中的库直接调用两个摄像头。 解决方法 群里面只用使用ubuntu操作系统的解决方法,...

demonmll的博客 3981

人体头部扫描模型

该模型分两个文件,FullHead.vtk和FullHead.raw,可以使用vtkMetaImageReader打开,详见博客说明

Unity3D用webcam拍照

这是用unity利用webcam拍照的代码

CHUSEI 3D Webcam双目图像、视差图以及点云显示

安装完成后并把uvcdynctrl命令写成shell脚本来实现四个模式的切换。下面的脚本将会在cpp程序中调用,不需要自己手动执行。环境:Ubuntu系统+opencv+pcl。需要安装uvcdynctrl,执行如下命令。

luoganttcc的博客 427

3D摄像头驱动

3D摄像头驱动,是关于两个摄像头从不同视角图像的合成

Ubuntu下读取CHUSEI 3D Webcam 双目摄像头C++版本(调用python脚本进行配置)

本博客做了一个工作——Ubuntu下用OpenCV读取CHUSEI 3D Webcam 双目摄像头(C++版本),希望能给予有需要的朋友一个参考。 购买了CHUSEI 3D Webcam 双目摄像头问群主有没有相关代码,群主说上班很忙,于是自己就参考群里资料做了些工作。群里给的方法一是python同时进行摄像头设置和双目图像的读取代码(如果用python开发的推荐使用),方法二是sh脚本设置。方法...

YY的博客 4607

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

IFRS 9与CECL对比解析:跨国企业财务必须掌握的两种信用损失模型

本文深度解析IFRS 9与CECL两种信用损失模型的差异,帮助跨国企业应对财务合规挑战。从基础架构、数据治理到监管策略,详细对比三阶段模型与单一阶段模型的核心区别,并提供实施双轨制的实务建议,助力企业优化资本管理和税务筹划。

3c4x5z6v7b的博客 668

用Opencv4.5.2+Melodic+USB双目摄像头跑通ORB-SLAM2

用Opencv4.5.2+Melodic+USB双目摄像头跑通ORB-SLAM2 文章目录用Opencv4.5.2+Melodic+USB双目摄像头跑通ORB-SLAM2前言 前言 入门SLAM需要深度相机和激光雷达这些基础硬件,但是考虑到自己的经济实力实在不允许,所以就入手了下面这个摄像头。这个摄像头的具体长这样,是我在淘宝35元买来练手的。 在商家提供的资料外,也发现了不少值得再延申的内容,比如如何在ROS下进行双目测距算法,PCL三维重建,如何联系ORB-SLAM2的双目建图等等。一个ide

甦傑的博客 1383

RK-XCKU5P RoCEv2 传感器桥工程分析报告

烧入后这块 FPGA 就是一个固定身份(CA:FE:C0:FF:EE:00 / 192.168.0.2 / 无 FEC 100G)的RoCEv2 UC 端点,每秒在 UDP 12267 广播自报家门;对端 CX5 只要关 FEC、配 192.168.0.101 +MTU 4200,就能 ping 通它、用 UDP 8192 读写它的全部寄存器、再按"ECB 旁路交换 QPN/rkey"的方式建立 UC RDMA 通道收发数据。

eloudy的专栏 243

在linux/Ubuntu下调试最便宜的双目摄像头(含Linux版本上位机)CAM5031/CHUSEI 3D WEBCAM 解决只能开单目的问题

在淘宝上买了一个非常便宜的双目摄像头 价格好像只有20来着,测试和学习的首选啊 为了配合ubuntu上的ros使用需要把代码放在ubuntu上运行,卖家也提供了关于linux调试摄像头的资料。 但是摄像头默认的模式是单目,要切换为双目只能使用卖家提供的上位机或者linux下切换的脚本,然而卖家的上位机只能Windows下使用,脚本用起来又非常不方便,于是决定自己用QT写一个。 为了避免UI卡死,必须把读取摄像头部分放在了另一个线程运行。为了方便用QT直接执行脚本 因为还不会linux下的程序发布,所以没法放

hbwhzc的博客 2226

C++ PCL点云处理实战专栏

工业级点云处理技术学习资源,涵盖电力、建筑、隧道等领域的实战案例。内容分为三阶段:代码原理(算法认知)、动态库(项目验证)和完整代码(定制开发)。

weixin_45196569的博客 1117

8年ES运维经验整理出的Elasticsearch运维手册(超实用)

k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。

yonggeit的博客 5273

将webcam设置为网站favicon

今天在Twitter上看到用户davywtf将webcam设置为网站favicon。 在线示例: https://wybiral.github.io/code-art/projects/tiny-mirror/ 我们可以看到js源代码: // Handle FF navigator.getUserMedia = navigator.getUserMedia || navigator.mo...

Travelling1006的专栏 270

SAR成像专栏目录

为方便大家阅读,我做了一个专栏目录,蓝色字有超链接,可以直接打开。 本专栏默认读者已具备雷达系统的基本知识或者已阅读过雷达导论专栏中的文章。 1. 概述 SAR成像概述 星载SAR的各项指标解读(史上最全) SAR成像算法的实现途径与算力分析 2. SAR成像原理与SAR系统简介 雷达与分辨率 SAR成像原理与方法 SAR图像的形成和处理 SAR系统设计 3. 点目标仿真 点目标仿真(一)—— 数学模型 点目标仿真(二)—— Matlab仿真 4. 成像算法 更新中 雷达导论专

7457

摄像头(WebCam)在Linux中采用Spcaserv 架设网络视频服务器 (v0.1b)

<br />1、网络监控服务器的说明;<br /><br />如何用摄像头做一个时时监控的系统呢?也就是说有一台网络专用临控服务器,其它客户机通过网络影像监控软件或浏览器来进行时时监控摄像头所在位置,所发生的一切。我没有弄过专业类的视频监控,也不知道他们用的是什么专业的设备,也不知道他们有什么功能。我所理解的网络监控服务器应用如下内容:* 时时监控功能:时时监控摄像头所监视的范围; * 数据流采集功能:时时采集监控数据流,以备将来查找相关影像资料做准备; * 照片抓取功能:比如每隔5分钟抓取一张照片;

yhguo2008的专栏 1433

FFDNet-pytorch版本代码训练教程

该文章为FFDNet-pytorch版本代码训练教程,抓紧订阅学习!尽早入门发论文哦!

假技术Po主 1506

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)

默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。

记录并分享学习安全的知识点.. 2173

3D摄像头

using UnityEngine; using System.Collections; public class SimpleFreeCamera : MonoBehaviour { private Transform CameraTr; public Transform ParentTr; private Camera Camera; //Y轴最大旋转角度 public float MaxY ...

yuxisanno139的专栏 916

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在WIN7-64下使用PYTHON获得摄像头图片

转载:在WIN7-64下使用PYTHON获得摄像头图片 转载地址:https://www.cnblogs.com/webooxx/archive/2012/06/07/2540549.html 环境是Python2.7 需要下载库: pygame 处理帧 http://www.lfd.uci.edu/~gohlke/pythonlibs/bpchanvi/pygame-1.9.2pre...

weixin_39682177的博客 268

lwip-2.0.3

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

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...

sys.usb.config webcam

setprop persist.sys.usb.config webcamecho 0 &gt; /sys/devices/virtual/android_usb/android0/enableecho "webcam" &gt; /sys/class/android_usb/android0/functionsecho 1f30 &gt; /sys/devices/virtual/android...

weixin_34211761的博客 405

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 32-SIFI特征点提取(EmguCV学习)
下一篇: 33-SIFT特征匹配(EmguCV学习)
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值