首页 > 解决方案 > OpenCV使用单色相机将帧扔到输出时得到3张图片而不是1张

问题描述

我使用单色相机 oCam-1MGN-U 从视频中获取帧。当我想将帧扔到输出时,我得到了 3 张图片而不是 1 张。我知道这台相机使用 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 上工作,我得到了三张与此非常相似的图片:

https://github.com/TheImagingSource/tiscamera/issues/20

我所拥有的框架具有形状:480、640、3

我尝试了什么:

标签: pythonopencv

解决方案


听起来这是自 2014 年以来已知的一个问题: https ://github.com/TheImagingSource/tiscamera/issues/20

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

单色的建议是使用:

cv2.imdecode(frame, CV_LOAD_IMAGE_GRAYSCALE)

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


推荐阅读