python - 为什么我不能使用OPENCV VideoCapture从正面平板相机读取视频流?

标签 python linux opencv video4linux

为了尽量减少这个项目推出过程中出现的问题,我选择了使用Docker over Debian over OracleVM VirtualBox。在这种特定情况下,Virtual Box位于Windows 8之上。
我试图通过OpenCV访问的摄像头是戴尔在Venue 11 Pro平板电脑上提供的OmniVision OV2722
我使用此资源的路径如下:
一旦Debian虚拟机启动,我就会查看devices > webcams菜单上的网络摄像头。
启动Docker容器解析带有--device=/dev/video0:/dev/video0标志的网络摄像头。
在容器中运行我的脚本。
结果是:
构造函数不返回空指针。
当使用VideoCapture检查方法时,相机打开
尝试使用cap.isOpened()获取下一帧时,脚本返回cap.read()
select timeout之后,将显示以下错误:
OpenCV错误:断言失败(buf.data&&buuf.idContinuos())
解码文件
/riit/icv tmp/opencv-2.4.11/modules/highui/src/loadsave.cpp,第307行
回溯(最近的最后一次调用):文件“main.py,第285行,in
ret,frame=cap.read()cv2.错误:
/根目录/ocv tmp/opencv-2.4.11/modules/hihgui/src/loadsave.coo:307:
错误:(-215)函数imdecode中的buf.data&&buf.isContinuos()_
到目前为止我试过的事情:
使用select timeout方法调整图像大小:gotcv2.VideoCapture.set()
从docker linux主机和docker linux容器中删除并插入内核模块HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP,设置UVCVIDEO--nodrop=1标志。
用USB摄像头运行相同的脚本(Logitech C920):它成功了!
On--timeout=10000已经尝试了-1、0、1、2、3个索引:只有-1和0使我转到根错误。1、2和3导致执行时出现致命错误。
尝试运行具有管理权限的虚拟机。
更多信息:
主机:Window 8.1 Pro,2GB,Intel Atom Z3775
嘉宾:Debian 91GB
DOCKER图片:bamos/openface
我在这里使用的代码是相当标准的,顺便说一下,它是基于OpenCV文档的

 cap = cv2.VideoCapture(0)
 if cap is not None and not cap.isOpened():
    print 'Found issues on open the camera'
    exit()

 ret, frame = cap.read()

好吧,我不知道我是否足够具体。如果你需要更多的信息,请告诉我。提前感谢大家的支持。
更新:
正如@marian提到的,正确的cap = cv2.VideoCapture()语句是if
在我已经做的事情上,我刚刚完成了Windows平板电脑上的网络摄像头驱动程序的更新。

最佳答案

而不是

if cap is not None and not cap.isOpened():

使用
if cap is None or not cap.isOpened():

关于python - 为什么我不能使用OPENCV VideoCapture从正面平板相机读取视频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53622936/

相关文章:

python - PyQt5 导入 QtGui 失败

Linux:获取空闲空间物理 block 号(空闲空间位图)

python - 如何提高YOLOv3检测时间? (OpenCV + Python)

c++ - 从 python IDLE 问题调用 c++

python - 如果图像大小为 GT 300KB,则 django-imagekit 压缩图像

Python 将字符串添加到包含多个项目的匹配列表中

linux - linux和AUTOSAR的多核使用

linux - 我无法从 Mono 网站找到 RHEL 5.5 的 Mono 设置,谁能指导我

opencv - 产生具有相同感知亮度和饱和度的颜色

c# - OpenCVSharp3 MatchTemplate 中的多个结果