使用pyusb从相机读取帧

时间:2020-03-13 15:11:34

标签: python python-3.x pyusb

我需要使用低级界面访问USB摄像机。要求包括识别设备,并且代码可以在linux,windows和android上运行。

以下是使用pyusb的程序示例的开头。对set_configuration()的调用失败,并显示“资源繁忙”,并且需要root才能运行。

如何从相机读取帧?而且,是否有更适合上述要求的API?

#!/usr/bin/python3
import sys
import usb.core
import usb.util

dev = usb.core.find(idVendor=0x0c45, idProduct=0x6366)

if dev is None:
    raise ValueError('Device not found')

cfg = dev[0]
print( cfg[(0,0)] )

# Fails here:
dev.set_configuration()

data = dev.read(0x83,3*640*480,100)

错误回溯:

Traceback (most recent call last):
  File "./V4L2Test.py", line 15, in <module>
    dev.set_configuration()
  File "/usr/lib/python3.7/site-packages/usb/core.py", line 869, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/lib/python3.7/site-packages/usb/core.py", line 102, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib/python3.7/site-packages/usb/core.py", line 148, in managed_set_configuration
    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
  File "/usr/lib/python3.7/site-packages/usb/backend/libusb1.py", line 794, in set_configuration
    _check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))
  File "/usr/lib/python3.7/site-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 16] Resource busy

0 个答案:

没有答案