我使用单色相机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
我尝试了什么:
b, g ,r = cv2.split(frame)
并抛出
输出只有一个通道,但我仍然得到3张图片答案 0 :(得分:1)
听起来这是自2014年以来已知的问题: https://github.com/TheImagingSource/tiscamera/issues/20
OpenCV捕获类处于非常悲伤的状态(不仅仅是关于v4l2)。图像看起来是这样的原因是它在尝试保持正确的分辨率时将传入的Y800解释为rgb。 这只能通过修补OpenCV或使用其他方法来获取图像来修复。
建议单色使用:
cv2.imdecode(frame, CV_LOAD_IMAGE_GRAYSCALE)
你可以尝试让我们知道它是否有效吗?