gpt4 book ai didi

c++ - UVC 相机 "Still Pin"在 Linux C++ 中捕获

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:33 26 4
gpt4 key购买 nike

我这里有一个 USB 摄像头,我非常熟悉并且已经使用了一段时间。我可以毫无问题地在 OpenCV 和 Gstreamer 中捕获“静止图像”。但是,此相机的一个用例涉及相机本身的一个按钮,用于拍摄静止图像。

相机有一个“静止针脚”,我已经连接了一个按钮。在带有 DirectShow 的 Windows 中,它可以像您期望的那样工作。在过去的一周里,我一直在寻找一种方法来为我的嵌入式项目在 Linux 中复制这种行为。到目前为止,我还没有找到任何我可以利用的东西。似乎只有 Windows 才支持此功能。

我搜索了以下内容:V4l2 文档打开简历 meteor uvc流光紫外线捕捉luvc View

我还在 Windows 上进行了 USB 嗅探,发现发送了“捕获开始”数据包。虽然我还没有找到一种方法可以在流式传输期间监控来自相机的 USB 流量。从设备捕获时,/dev/video0 正在被 V4l2 使用,我无法读取总线上传输的字节。如果有一种方法可以从相机读取原始数据,我也可以在我的应用程序中处理“静止针”按钮按下。

此时欢迎任何可能的解决方案/想法。我没有想法和网络资源。

最佳答案

事实证明,在 Linux 中有一种方法可以看到按下“静止固定”按钮!

按钮按下显示为一个事件。使用诸如 libevdev 之类的东西,我可以在我的代码中使用它。这个答案主要是在这里找到的:

can't get the mouse move event from /dev/input/event*

这是相机按钮的示例输出:

# input-events 15
/dev/input/event15
bustype : BUS_USB
vendor : 0xc45
product : 0x62c0
version : 256
name : "Celestron Digital Microscope"
phys : "usb-0000:00:14.0-1/button"
bits ev : EV_SYN EV_KEY

waiting for events
08:34:01.980650: EV_KEY KEY_CAMERA (0xd4) pressed
08:34:01.980650: EV_SYN code=0 value=0
08:34:02.180637: EV_KEY KEY_CAMERA (0xd4) released
08:34:02.180637: EV_SYN code=0 value=0
08:34:02.580673: EV_KEY KEY_CAMERA (0xd4) pressed
08:34:02.580673: EV_SYN code=0 value=0
08:34:02.680676: EV_KEY KEY_CAMERA (0xd4) released
08:34:02.680676: EV_SYN code=0 value=0
08:34:03.580618: EV_KEY KEY_CAMERA (0xd4) pressed
08:34:03.580618: EV_SYN code=0 value=0
08:34:03.780657: EV_KEY KEY_CAMERA (0xd4) released
08:34:03.780657: EV_SYN code=0 value=0
08:34:04.280631: EV_KEY KEY_CAMERA (0xd4) pressed
08:34:04.280631: EV_SYN code=0 value=0
08:34:04.580679: EV_KEY KEY_CAMERA (0xd4) released
08:34:04.580679: EV_SYN code=0 value=0
08:34:05.080636: EV_KEY KEY_CAMERA (0xd4) pressed
08:34:05.080636: EV_SYN code=0 value=0
08:34:05.380704: EV_KEY KEY_CAMERA (0xd4) released
08:34:05.380704: EV_SYN code=0 value=0

如您所见,按钮的按下/释放对系统来说是清晰可见的。我希望这对其他人的搜索有所帮助。

我想我还应该提到按下按钮会在 guvcviewer 中保存静止图像,所以我知道必须支持此类操作。

关于c++ - UVC 相机 "Still Pin"在 Linux C++ 中捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29355100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com