gpt4 book ai didi

c++ - 对V4L2的一个误解

转载 作者:太空狗 更新时间:2023-10-29 12:34:14 25 4
gpt4 key购买 nike

我在 C++ 程序中的缓冲区大小有一个小问题。我使用 V4L2 从相机中抓取 YUYV 图像(一个例子可用 here )

我想拍摄一张图像并将其放入我自己的图像结构中。这是 V4L2 结构体给出的缓冲区及其大小

(uchar*)buffers_[buf.index].start, buf.bytesused

在我的结构中,我创建了一个大小为 width*height*bitSize 的新缓冲区 (mybuffer)(字节大小为 4,因为我抓取了 YUYV 或 YUV422 图像)。

问题是我希望缓冲区 buf 与我创建的缓冲区大小相同。但情况并非如此,例如当我抓取一个 640*480 图像时 buf=614400 和 mybuffer=1228800(两倍大)。

有人知道为什么会这样吗?

最佳答案

YUV4222 个像素 使用 4 个字节

YUV422 模式下,UV 值在两个像素之间共享。图像中的字节按 U0 Y0 V0 Y1 U2 Y2 V2 Y3 等顺序

给出像这样的像素:

pixel 0   U0Y0V0
pixel 1 U0Y1V0
pixel 2 U2Y2V2
pixel 3 U2Y3V2

关于c++ - 对V4L2的一个误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16379341/

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