Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 树莓皮和OpenCV的问题_Python_Opencv_Raspberry Pi - Fatal编程技术网

Python 树莓皮和OpenCV的问题

Python 树莓皮和OpenCV的问题,python,opencv,raspberry-pi,Python,Opencv,Raspberry Pi,我有一个raspberry pi项目,我正在使用python。但是,当我尝试运行此代码时,OpenCV有一个问题: `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.

我有一个raspberry pi项目,我正在使用python。但是,当我尝试运行此代码时,OpenCV有一个问题:

`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()`
我得到这个错误:

OpenCV错误:cvtColor文件/home/pi/OpenCV-3.1.0/modules/imgproc/src/color.cpp第8000行中的断言失败(scn==3 | | scn==4)

回溯(最近一次呼叫最后一次):
文件“test.py”,第11行,在
灰色=cv2.CVT颜色(边框,cv2.COLOR\u BGR2GRAY)
cv2.error:/home/pi/opencv-3.1.0/modules/imgproc/src/color.cpp:8000:error:(-215)函数cvtColor中的scn==3 | | scn==4”

我有Python 3.4.2、OpenCV 3.1.0和Numpy 1.8.2。所以我找到了答案。我所要做的就是在我的raspberry pi上运行以下代码:

sudo modprobe bcm2835-v4l2

谢谢你的帮助。

frame
看起来已经是grascale了。所以你可以避免使用
cvtColor
行,只需执行
gray=frame
即使没有“gray=cv2.cvtColor(frame,cv2.COLOR\u BGR2GRAY)”命令,我也尝试过这段代码,但我得到的错误与最后说的差不多。”在函数imshow“而不是CVTColor中,您可以提供一个样本帧吗?如果您将样本帧保存到一个文件中,再次从文件中读取样本帧并按上述步骤进行操作,会发生什么情况(即哪一步不起作用?)。您确定视频捕获有效吗?那么您可能首先没有正确加载
。请检查
ret==True
,或者
。或者甚至
cap.isOpened()
我刚刚尝试了“如果没有cap.isOpened():打印(“无法打开相机”)“当我运行它时,我收到了这条消息,之后又出现了同样的错误。所以我想这与相机有关,与我不知道的相机驱动程序有关。有什么想法吗???是的,你必须确保为Linux驱动程序加载视频
sudo modprobe bcm2835-v4l2