使用OpenCV将YUYV(4:2:2)转换为灰度

问题描述 投票:0回答:1

我正在使用照相机,该照相机提供12位RAW输出并封装有YUYV格式。我想将此YUYV数据解码为灰度或RGB图像。我可以用OpenCV做到这一点吗?对此的任何其他方法也表示赞赏。谢谢

python matlab opencv rgb opencv3.0
1个回答
0
投票

以YUYV格式,您得到:

  • 第一个像素的Y值
  • 前两个像素的共享U值
  • 第二个像素的Y值
  • 前两个像素的共享V值

如果您想要灰度,那将只是Y值,因此在不查看或无法测试您的数据的情况下,您应该能够做到:

Grey = YUYV[0:2:]

应该选择第一个,第三个,第五个,依此类推。然后,您需要reshape()到图像的大小:

Grey = YUYV[0:2:].reshape((height,width))

由于您的数据是12位的,因此您可能需要向右移4位以构成8位。

Grey8 = (YUYV[0:2:].reshape((height,width)) >> 4).astype(np.uint8)

检查您的dtype

© www.soinside.com 2019 - 2024. All rights reserved.