Python 2.7 cv2.CVT颜色错误。是虫子吗?

Python 2.7 cv2.CVT颜色错误。是虫子吗?,python-2.7,opencv,motion-detection,Python 2.7,Opencv,Motion Detection,我需要使用一些运动检测代码,然后我使用以下代码,由此链接提供: . 代码如下: import cv2 def diffImg(t0, t1, t2): d1 = cv2.absdiff(t2, t1) d2 = cv2.absdiff(t1, t0) return cv2.bitwise_and(d1, d2) cam = cv2.VideoCapture(0) winName = "Movement Indicator" cv2.namedWindow(winN

我需要使用一些运动检测代码,然后我使用以下代码,由此链接提供: . 代码如下:

import cv2

def diffImg(t0, t1, t2):
    d1 = cv2.absdiff(t2, t1)
    d2 = cv2.absdiff(t1, t0)
    return cv2.bitwise_and(d1, d2)

cam = cv2.VideoCapture(0)


winName = "Movement Indicator"
cv2.namedWindow(winName, cv2.CV_WINDOW_AUTOSIZE)

# Read three images first:
t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)

while True:
    cv2.imshow(winName, diffImg(t_minus, t, t_plus) )
    #diff = diffImg(t_minus, t, t_plus) 

    # Read next image
    t_minus = t
    t = t_plus
    t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)

    #cv2.imshow(winName, diff)
    key = cv2.waitKey(10)
    if key == 27:
       cv2.destroyWindow(winName)
       break

print "Goodbye"
起初,它运行平稳,但现在,它给了我错误:

cv2.error:…\opencv\modules\imgproc\src\color.cpp:3737:函数cv::cvtColor中的错误:(-215)scn==3 | | scn==4

我在stackoverflow中找到了各种解决方案,但仍然出现了错误。据说发生错误是因为源没有代码(函数调用中的第三个参数)所指示的正确颜色格式。 谁能告诉我发生错误的原因吗?或者是opencv的错误,而没有解决方案?

问题是
t\u减号=cv2.cvt颜色(cam.read()[1],cv2.COLOR\u RGB2GRAY)

#^


当您访问BGR图像的[1]索引时,它不再是要使用
cv2.COLOR\u RGB2GRAY
转换的彩色图像。相反,只需编写
cam.read()
。另外请注意,OpenCV默认使用BGR,而不是RGB。

我也遇到了这个问题,在我阅读了上述答案后,我尝试了它,但没有解决它,最后我发现我的图像路径是错误的,所以你最好先检查真正的路径

请粘贴此处使用的代码,而不是某个博客的链接。同时添加有问题的图片,我为我的错误感到抱歉。我已经编辑了我的问题。图像来自摄像机——它是摄像机的实时捕捉。你能帮我吗?cam.read()返回:err,img。您不应该放弃err值。你可能打了个嗝,暂时不能送一架。(我怀疑,img是空的)