我注意到我在构建 opencv_contrib 模块后就开始遇到这个问题,因为在我的代码工作之前,现在即使使用简单的面部检测程序,我也无法使用 opencv 访问我的网络摄像头。相反,我收到此错误:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /io/opencv/modules/imgproc/src/color.cpp:10638: error: (-215) scn == 3 || scn == 4 in function cvtColor
但是对于一个简单的程序来打开相机它只是退出我认为它在 line 处读取为 false ret, frame = cam.read
这是我的启动代码:网络摄像头
import cv2
cv2.namedWindow("preview")
cam = cv2.VideoCapture(0)
if cam.isOpened(): # try to get the first frame
ret, frame = cam.read()
else:
ret = False
while ret:
cv2.imshow("preview", frame)
ret, frame = cam.read()
key = cv2.waitKey(20)
if key == 27:
break
cv2.destroyWindow("preview")
cam.release()
In[5] print (cv2.__version__)
3.3.0
In[6] webcam = cv2.VideoCapture(0)
ret,frame = webcam.read()
print (ret)
False