gpt4 book ai didi

ios - 如何正确处理 CVPixelBuffer 中的像素?

转载 作者:行者123 更新时间:2023-12-03 18:12:58 24 4
gpt4 key购买 nike

简短的问题是:在 CVPixelBuffer 中处理像素值的公式是什么?

我正在尝试将 CVPixelBuffer 转换为平面字节数组,并注意到一些奇怪的事情: CVPixelBuffer 是从 CMSampleBuffer 获得的。它的宽度和高度是 852x640 像素。总之 545280 像素,考虑到每个像素的 2181120 字节,这将需要 4 字节。

现在第一个奇怪的事情是,相同的 CVPixelBuffer 每行返回 3456 字节,这对于 864 像素来说是足够的空间。这些额外的 12 像素来自哪里?如果最终图像中的一行只有 852 像素宽,但 864 的一行中实际上有 CVPixelBuffer 像素,我怎么知道需要复制哪些字节?或者这些字节中有哪些是未使用的?顺便说一句,它们没有被使用吗?

另一件事是报告的数据大小 CVPixelBuffers ,即 2211848 字节。现在,如果我们将每行的 3456 字节乘以 640 行,我们将得到 2211840 字节。同样,我们还剩下 8 额外的字节。那些 8 字节有什么问题?它们未被使用吗?他们到最后了吗?

欢迎任何对此事有所了解的建议,
谢谢你。

最佳答案

在内部,您的 CMSampleBuffer 将每一行填充为 16 字节的倍数,以便它可以有效地使用处理器的内部 128 位宽寄存器传送数据。这是我的猜测。如果您使用其 rowbytes 参数和 (x,y) 在 (0,0) 到 (851,639) 范围内访问像素数据,您应该永远不会遇到问题。

关于ios - 如何正确处理 CVPixelBuffer 中的像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249104/

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