gpt4 book ai didi

python - 16 位立体视频捕捉像素位分离

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:05 25 4
gpt4 key购买 nike

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

Stereo Video Output摄像头通过USB线直接连接PC,使用opencv(python)中的VideoCapture类获取视频流

我从文档中得到的信息是每个像素,高 8 位作为左眼传输,低 8 位作为右眼传输像素的 16 位数据。

我在框架中得到的 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)

关于python - 16 位立体视频捕捉像素位分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com