我的笔记本电脑(联想ThinkPad T490s,Ubuntu20.04)为集成相机展示了两种不同的相机:
[ 12.274248] uvcvideo: Found UVC 1.50 device Integrated Camera (13d3:56ba)
[ 12.285342] input: Integrated Camera: Integrated C as /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input20
[ 12.286838] uvcvideo: Found UVC 1.50 device I
当尝试实现一个基本的try/ or语句以从Linux上的摄像机获取帧时,我注意到当相机丢失或设备索引错误时,OpenCV不会引发错误;相反,它会打印警告。我怎么能抓到这个?
示例:
import cv2
def foo(camera_index):
try:
cap = cv2.VideoCapture(camera_index)
except Exception:
print("Couldn't open camera at {}".format(camera_index))
运行foo(1)时,在/dev/video
当插入USB设备时,dmesg记录Linux内核识别它,这里dmesg还描述了prosa中的产品(在下面的示例中是“USB2.0摄像机”)
[ 12.621009] Linux video capture interface: v2.00
[ 12.685253] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:6340)
[ 12.712522] input: USB 2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/input/input8
我