0

我注意到我在构建 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
4

1 回答 1

0

这可能不是最好的解决方案,但我不得不删除编译的cv2.so文件,/usr/local/lib/python2.7/usr/local/lib/python3.5/dist-packages 从我的构建目录从头开始安装:

  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D BUILD_EXAMPLES=ON ..
  2. make -j7
  3. make install
  4. sudo ldconfig
于 2017-09-20T23:37:46.493 回答