VideoCapture 似乎不适用于 Debian - opencv 3.2
Posted
技术标签:
【中文标题】VideoCapture 似乎不适用于 Debian - opencv 3.2【英文标题】:VideoCapture doesn't seem to work on Debian - opencv 3.2 【发布时间】:2017-09-23 15:03:45 【问题描述】:Videocapture demo
import numpy as np import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
我的 Debian 计算机上的视频捕获演示 (opencv 3.2.0) 无法正常工作,我不知道如何修复它。我在 windows 上试了一下,效果很好。
我都尝试了 VideoCapture (-1) VideoCapture (0) 但这似乎不起作用..
我该如何解决?谢谢你
OpenCV 错误:断言失败 (scn == 3 || scn == 4) 在 cvtColor, 文件中 /io/opencv/modules/imgproc/src/color.cpp, 第 9748 行 Traceback(最近调用 最后):文件“ok.py”,第 11 行,在 灰色 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.error: /io/opencv/modules/imgproc/src/color.cpp:9748: 错误:(-215) scn == 3 || scn == 4 英寸 函数cvtColor
$ v4l2-ctl --list-devices
UVC Camera (046d:0809)(usb-0000:00:14.0-3): /dev/video1
USB2.0 HD UVC WebCam (usb-0000:00:14.0-5): /dev/video0
我试过了
ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 output.mkv
并且网络摄像头工作..
【问题讨论】:
尝试在命令行使用ffplay
直接捕获。
@Vorac 网络摄像头可以工作,但是使用 opencv 示例脚本,给我一个错误
ret
和frame
在cap.read()
调用后的值是多少?
ret=假帧 = 无
你是如何安装 OpenCV 的?使用pip
?
【参考方案1】:
为什么是VideoCapture(1)
?您的系统上有两个摄像头吗?
你测试过
ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 output.mkv
在/dev/video0
上,所以它应该是VideoCapture(0)
。
【讨论】:
抱歉,我已经测试过 VideoCapture(0) 和 VideoCapture(1) 是的,我有 2 个网络摄像头,0:内置摄像头,1:usb-webcam 罗技 你是用ffmpeg构建opencv的吗?如果是的话,这真的很奇怪,因为opencv会调用ffmpeg来处理videoIO。以上是关于VideoCapture 似乎不适用于 Debian - opencv 3.2的主要内容,如果未能解决你的问题,请参考以下文章
NSURLSessionConfiguration timeoutIntervalForRequest 似乎不适用于后台会话
NSBackgroundColorAttributeName 似乎不适用于 iOS 10.3
pushViewController 似乎不适用于情节提要和 QLPreviewController
contentInsetAdjustmentBehavior 似乎不适用于子 UIControllerView 的 UIScrollview