我在Oracle VirtualBox(主机:Mac OS X)中安装了一个Ubuntu vm,安装了python(miniconda),opencv和内置网络摄像头,通过Devices> Webcams菜单连接到vm。如果我尝试在像this这样的网站上测试我的网络摄像头,它运行良好,但是如果我尝试用python以这种方式连接到带有opencv的摄像头:
>>> import cv2
>>> cap = cv2.VideoCapture(0) # or 1 or -1, I tried all
>>> ref, frame = cap.read()
>>> frame.shape
我有一个错误“NoneType没有属性形状”。我怎么解决这个问题?
这是可能的,但需要几个步骤才能正常工作:
1.确保虚拟机未运行且未使用您的网络摄像头。
2.打开主VBox窗口,在Win7机器的详细信息选项卡中单击USB。
3.确保选中“启用USB控制器”。还要确保选择“启用USB 2.0(EHCI)控制器”。
4.单击“从设备添加过滤器”按钮(带有“+”图标的电缆)。
5.从列表中选择您的设备。
6.现在单击“确定”并启动VM。
VBoxManage list webcams
。这将返回以下输出:视频输入设备:1
.1“FaceTime高清摄像头”
0x8020000005ac8514
VboxManage controlvm "my_virtual_machine_name" webcam attach .1
。其中.1
是Virtualbox的Video Input Devices
的名称。这将导致设备显示为已插入VM。从那里,你应该能够使用它或必要时安装驱动程序。