繁体   English   中英

16位Stero Video Capture像素明智位分离

[英]16bit Stero Video Capture pixel wise bit separation

我有一个立体相机,它使用UVC标准以以下格式输出相机的图像。 摄像头设备为OVRvision PRO

立体声视频输出 使用USB电缆将相机直接连接到PC,并使用opencv(python)中的VideoCapture类获取视频流

我从docs那里得到的信息是,每个像素,像素的16位数据都以左眼的形式传输,高8位作为左眼,而右眼传输的是低8位。

我在框架中得到的dtype是uint8

我不确定如何继续将视频捕获中的每个像素分开。 我将不胜感激任何帮助。

cv2.VideoCapture将返回numpy数组,因此,如果它们是16位的,则它们的数据类型应该为np.uint16

在这种情况下,解决方案很简单:做与拆分单个16位值相同的操作。 Numpy提供所有必需运算符的向量化版本。

  • 对:

    • 强制转换为np.uint8 (高位被丢弃)

       right = np.uint8(frame) 
  • 剩下:

    • 向右移8位
    • 转换为np.uint8

       left = np.uint8(frame >> 8) 

如果将输入图像缩小为8位深度,则将剩下两个16级图像。 要检索这两个组件,您只需稍微修改一下方法即可。

控制台中的示例:

>>> a = np.ones((4,4),np.uint8) * 0x73
>>> a & 0xF
array([[3, 3, 3, 3],
       [3, 3, 3, 3],
       [3, 3, 3, 3],
       [3, 3, 3, 3]], dtype=uint8)
>>> a >> 4
array([[7, 7, 7, 7],
       [7, 7, 7, 7],
       [7, 7, 7, 7],
       [7, 7, 7, 7]], dtype=uint8)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM