Python 树莓皮和OpenCV的问题
我有一个raspberry pi项目,我正在使用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.
`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