Python OpenCV使用单色相机在输出帧时得到3张图片,而不是1张

Python OpenCV使用单色相机在输出帧时得到3张图片,而不是1张,python,opencv,Python,Opencv,我使用单色相机oCam-1MGN-U从视频中获取帧。当我想将帧抛出到输出时,我得到了3张图片,而不是1张。我知道这台相机使用的是一个频道。我如何解决这个问题 if __name__ == '__main__': cap = cv2.VideoCapture(1) # Streamming from camera monochromatic while(cap.isOpened()): succes, frame = cap.read() if(

我使用单色相机oCam-1MGN-U从视频中获取帧。当我想将帧抛出到输出时,我得到了3张图片,而不是1张。我知道这台相机使用的是一个频道。我如何解决这个问题

if __name__ == '__main__':
   cap = cv2.VideoCapture(1)    # Streamming from camera monochromatic
    while(cap.isOpened()):
        succes, frame = cap.read()
        if(succes):
            cv2.imshow('Orginal',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()
    print('End')
我在linux上工作,我得到了三张与此非常相似的图片:

框架我得到的形状是:480640,3

我尝试的是:

  • 我已经在OpenCV 3.2和3.4上进行了测试
  • 获取此帧并将其拆分
    b,g,r=cv2。拆分(帧)
    并抛出 只有一个通道的输出,但我仍然得到3张图片
  • 改变视频流的分辨率

听起来这是一个自2014年以来众所周知的问题:

OpenCV捕获类处于非常糟糕的状态(不仅仅是关于v4l2)。您的图像看起来如此的原因是,它将传入的Y800解释为rgb,同时试图保持正确的分辨率。 这只能通过修补OpenCV或使用其他方法获取图像来修复

建议使用单色:

cv2.imdecode(frame, CV_LOAD_IMAGE_GRAYSCALE)

你能试着让我们知道它是否有效吗?

你能添加更多的代码吗?我身边没有单色照相机,但我可以试着找出问题所在吗?我想你不会试图分裂你的框架@trieser然后您必须提供足够的信息(代码、示例输入),以便我们复制您的问题。简单地说“它不工作”并不能让我们继续下去。我在得到三张图片而不是一张图片时添加了示例代码。请提供重现此问题的示例代码。显示(不正确)输出的图像也会有所帮助。(出于好奇,什么相机?)