linux - V4L2_PIX_FMT_YUYV : convert from YUYV to RGB24?

标签 linux rgb yuv v4l2 image-conversion

我正在使用 Video4Linux2 从网络摄像头捕获图像数据。设备返回的像素格式为 V4L2_PIX_FMT_YUYV。根据http://linuxtv.org/downloads/v4l-dvb-apis/V4L2-PIX-FMT-YUYV.html这与 YUV422 相同,所以我根据 http://paulbourke.net/dataformats/yuv/ 上的描述使用了 YUV422 到 RGB24 的转换。 .

令人惊讶的是,结果是一张奇怪的紫色/绿色图片。所以 YUYV 似乎与 YUV422 有所不同(并且还存在一种像素格式 V4L2_PIX_FMT_YUV422P,它是/不一样?)。

所以我现在很困惑:如何将 V4L2_PIX_FMT_YUYV 位图转换为真正的 RGB24?有没有例子?

最佳答案

评论太长了...

4:2:2 不是像素格式,它只是关于如何对色度数据进行二次采样的表示法。根据 linuxtv-link,V4L2_PIX_FMT_YUYV 与 YUYV 或 YUY2 相同。 关于该主题的最终引用是 http://www.fourcc.org .在 http://www.fourcc.org/yuv.php#YUYV 查看关于 YUY2 的内容

       Horizontal   Vertical
Y Sample Period 1   1
V Sample Period 2   1
U Sample Period 2   1

要验证输入格式确实是 YUYV,您可以使用我使用 SDL 编写的查看器;原生支持这种格式(以及其他格式)

https://github.com/figgis/yuv-viewer

另见 http://www.fourcc.org/fccyvrgb.php用于 rgb/yuv 转换的正确公式。

如果您需要进一步的帮助,请从那里获取并给我发表评论...

关于linux - V4L2_PIX_FMT_YUYV : convert from YUYV to RGB24?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176415/

相关文章:

php - 我将如何着手创建一个 php 脚本来执行 shell 命令以将文本写入另一个 php 文件?

linux - 基于 Web 的从 .pem 文件获取公钥的方法

java - 矩阵与浮点opencv android的乘法

opencv - 如何给Opencv输入YUV数据?

ffmpeg - 使用 ffmpeg 将一组 YUV 图像转换为视频?

linux - 使用键排序不起作用

linux - Linux内核中中断处理程序的返回值

python - 如何增加一个RGB图像的亮度而不会溢出?

jquery - 如何使用 jQuery 获取元素的框阴影颜色?

python - 使用 ffmpeg 从 yuv 到 rgb 的错误转换视频