对V4L2的一个误解

2024-06-10

我在 C++ 程序中的缓冲区大小方面遇到了一个小问题。 我使用 V4L2 从相机中抓取 YUYV 图像(有一个示例here http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html )

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

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

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

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

有谁知道为什么会出现这种情况?


YUV422 uses 4 bytes per 2 pixels

In YUV422模式U ans V值在两个像素之间共享。图像中的字节顺序如下U0 Y0 V0 Y1 U2 Y2 V2 Y3 etc.

给出像素,例如:

pixel 0   U0Y0V0
pixel 1   U0Y1V0
pixel 2   U2Y2V2
pixel 3   U2Y3V2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对V4L2的一个误解 的相关文章

随机推荐

  • 什么时候应该使用 Docker 的容器名称?

    当我跑的时候docker ps a I got CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e3be2faeb751 centos latest touch var log t
  • 等待线程直到条件发生

    我想等待在同步模拟器中执行的 2 个线程中的一个线程 直到发生某个条件 可能是在模拟器中运行程序 1000 个或更多周期后发生该条件 条件发生后等待的线程再次执行 我该怎么做 您需要条件变量 如果你的编译器支持std conditional
  • GridView 滚动时中断

    我正在开发一个自定义启动器应用程序 为此 我创建了一个自定义 GridView 来显示所有已安装的应用程序 问题是 当我滚动浏览应用程序时 网格视图有一个奇怪的行为 有时 由于多行应用程序名称 它会破坏水平对齐 有时滚动范围会变得疯狂 最终
  • JavaScript 和 HTML - 视频屏幕退出后停止背景声音

    我想停止视频播放视频背景声音或在退出视频屏幕后停止声音 全屏 现在的错误是退出视频屏幕后视频背景声音仍在播放 所以我只想删除视频背景声音 这是我的视频
  • python 中的秒表?数到按下空格为止

    我想在 python 3 3 中制作一个秒表 它会继续计数 直到您按下按钮或其他东西 然后它应该停止计数 这是我的代码 seconds 0 minutes 0 continued 0 while continued 1 print minu
  • Javascript获取外层父id DIV

    我有一个类似于下面的结构 我正在尝试获取 idfoo 它是only DIV如果我们从 id 中冒出onclick func 这意味着不会有其他DIVs里面包含一个 idfoo 但是 里面可以有其他标签foo包含一个 id 例如bye hel
  • IIS 反向代理干扰重定向位置标头

    我在 ASP Net 站点上有以下重写规则 以使 IIS 充当反向代理
  • Linux CFS 调度程序代码在哪里?

    我有3 13版本的完整linux源代码 我试图找到 CFS 调度程序的源代码 根据流行书籍 它应该驻留在 kernel sched c 中作为基本调度程序代码 而 kernel sched fair c 专门针对 CFS 代码 我刚刚在 3
  • MySQL:加载数据到文件中

    使用加载数据插入查询时出现错误 load data infile home bharathi out txt into table Summary 该文件位于该位置 但 mysql 抛出以下错误 错误 29 HY000 找不到文件 home
  • 如何默认以 IE7 模式打开 Internet Explorer 9?

    我想将 IE 设置为始终以 IE7 模式打开 我主要在 Chrome 中进行开发 出于效率和 80 20 原则的目的 我假设 IE9 的外观和行为与 Chrome 基本相似 我认为如果某些东西在 IE7 中看起来和工作得足够好 大多数时候
  • Robolectric 未正确处理 getApplicationContext() - NPE

    我一直在使用 Robolectric 在 Android 应用程序上运行一些测试 到目前为止它运行良好 我的应用程序将 getApplicationContext 的结果传递给构造函数 但 Robolectric 应该确保该值不为 null
  • 在 iOS6 上的 UITextView 上使用 attributeText (NSAttributedString) 仅适用于段落样式或字体,但不能同时适用于两者

    我一直在尝试使用 UITextView 的 attributeText 属性将可调整的行高添加到我的自定义 UITextView 中 我的代码在模拟器中运行良好 但无法在 iPhone5 上运行 如果我删除字体行 行高会起作用 但文本会恢复
  • 无法使用已安装的 java 3d

    您好 我正在尝试在命令提示符和 netbeans 中使用 java 3d 我有一台win8 64位电脑 我安装了j3d 1 5 2 windows amd64 exe 它安装在 java 文件夹中名为 Java3D 的文件夹中 然后我添加了
  • chrome 不渲染 gif 背景图像

    当前运行 chrome 14 它无法在我的登录页面上呈现旋转的 gif 图形 这是该页面在 Chrome 中的样子 这是它在所有其他浏览器上的样子 重现 http trunk test openmile com login null htt
  • 使用 NSTextAttachment 设置 NSAttributedString 截断尾部的垂直对齐

    我正在使用以下代码来生成NSAttributedString for UILabel在 iOS 8 中 a long long Chinese title NSString title 这是一个很长很长很长很长很长很长的中文标题 setup
  • 在 AccountController 外部访问 UserManager

    我正在尝试设置一列的值aspnetuser来自不同控制器的表 不是accountcontroller 我一直在尝试访问UserManager但我不知道我们该怎么做 到目前为止 我已经在我想使用它的控制器中尝试了以下操作 Applicatio
  • 如何在 Eclipse RCP 项目中使用 groovy?

    我有一个 Eclipse RCP 项目 我想在其中使用 Groovy 我尝试做的是 1 添加 Groovy Nature 2 在 src 文件夹下创建Groovy文件3 从 View 的createPartControl 方法调用groov
  • 如何在 Java FX 中以编程方式模拟箭头键按下

    我想让我的 JFX 应用程序模拟箭头键按下 当它们在 TextField 中注册时 但我不知道如何发送字符串或字节以外的任何内容 我正在想象这样的事情 static EventHandler
  • 使用 VBA 从 Word 发送 HTTP 请求

    我正在尝试将数据从 Word 文档发送到网页 我找到了一些代码 将其粘贴到新模块中并保存 当我运行它时 我收到 编译错误 用户定义的类型未定义 My code Sub http Dim MyRequest As New WinHttpReq
  • 对V4L2的一个误解

    我在 C 程序中的缓冲区大小方面遇到了一个小问题 我使用 V4L2 从相机中抓取 YUYV 图像 有一个示例here http linuxtv org downloads v4l dvb apis capture example html