问题标签 [cvpixelbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
257 浏览

swift - 在 Metal 着色器中写入 0-Alpha 无法正确渲染

我正在尝试对通过 UIView 播放的 mp4 视频进行色度键控。

我每帧都得到一个纹理,如下所示:

像这样将它传递给我的着色器:

着色器如下所示:

显示如下:

示例层添加如下:

但是当电影回放时,我期望透明的区域是黑色的,它后面的 UIView 是蓝色的。

有任何想法吗?

0 投票
0 回答
550 浏览

swift - Swift:将灰度图像转换为包含视差的 CVPixelBuffer

我有一个深度数据的灰度图像,该图像已从其原始分辨率上采样。我不知道如何将放大的深度图像(r,g,b)的像素值转换为浮点数。

有没有办法将像素的白度级别转换为浮点值?

无论如何我可以转换与图像关联的 CVPixelBuffer 的 CVPixelBufferFormatTypes 吗?

换句话说,有没有办法将灰度图像的像素缓冲区转换为包含视差浮动的 CVpixelbuffer?

我使用以下代码从上采样深度数据的 cgimage 表示中提取 cvpixelbuffer:-

0 投票
2 回答
1267 浏览

objective-c - 如何在 Swift 中复制 CVPixelBuffer?

我正在尝试将一些 ObjC 代码移植到 Swift。该代码是 Flutter Camera-Plugin(第 265 行)的一部分。该插件允许实时预览相机。

作为一名 Swift 程序员,我不知道这里发生了什么。做什么OSAtomicCompareAndSwapPtrBarrier()以及如何将这段代码转移到 Swift?

0 投票
0 回答
359 浏览

swift - 如何将 ARKit 捕获帧的 CVPixelBuffer 颜色空间转换为 RGB

我想为我训练有素的模型使用 coreML 和视觉,但这只需要RGB颜色空间的图像。我想知道如何转换ARFrame CVPixelBuffer为色彩空间。我需要作为返回类型。我读到可以使用金属着色器轻松完成,但我想将其用于项目的其余部分。有没有没有金属着色器的解决方案?如果不是,我怎么能在保留的同时使用金属着色器?提前感谢您的回答!ycbcrRGBCVPixelBufferSceneKitSceneKit

0 投票
0 回答
1279 浏览

ios - 内存管理 - CVPixelBuffer 到 UIImage,使用 CIImage 和 VTCreateCGImageFromCVPixelBuffer 的区别

我有两个解决方案转换CVPixelBufferUIImage.

  1. 使用 CIImage 及其上下文

第一个解决方案是使用CIImageand CIContext

  1. 使用 VTCreateCGImageFromCVPixelBuffer

代码看起来像这样。

在此解决方案中,我使用此扩展方法。

从视频中提取图像的整个过程如下。

全过程

  1. 串行提取所有帧。
  2. 使用 .将每个图像同时缓存在磁盘中OperationQueue

问题

当图像同时缓存时会出现问题,使用CIContext及其createCGImage(ciImage:rect:). 在第一个场景中所有缓存过程结束之前,内存占用会越来越高。但是,第二种方式,它会在每个 workItem 完成时释放它的内存。

我真的不知道为什么。

这是我与此问题相关的缓存方法。

0 投票
1 回答
1426 浏览

ios - 如何使用 YUV 颜色空间将 UIImage 转换为 CVPixelBufferRef?

我正在做视频录制。我需要将视图快照到 UIImage,然后将其转换为 CVPixelBufferRef。它适用于 RGBA 色彩空间。但是我需要的 CVPixelBufferRef 应该是 YUV 颜色空间。

有人有想法么?谢谢。

用 RGB 颜色空间创建 CVPixelBufferRef 很好。

这有点不对劲。

这是图像。

原图

rgb 缓冲区

YUV 缓冲液

谢谢你的帮助。

0 投票
1 回答
273 浏览

swift - 从 AVCapturePhotoDelegate 方法中检索 CVPixelBuffer

我想从didFinishProcessingPhoto委托方法中获取一个像素缓冲区,但它是零。

和扩展:

在此之前,我显然是在向会话中添加输出。我应该使用与该委托不同的方法吗?

0 投票
1 回答
835 浏览

swift - 如何更改 CVPixelBuffer 数据格式

我将 UIImage 转换为 CoreML 的 CVPixelBuffer,但我想更改 RGB 像素,例如 R/1.5、G/2、B/2.5。

我可以使用 读取像素数据assumingMemoryBound(to : UInt8.self),但是如何修改 CVPixelBuffer 中的像素数据?

0 投票
2 回答
1652 浏览

ios - 在任何 iOS 设备上复制 CVPixelBuffer

我很难想出在任何 iOS 设备上可靠地复制 CVPixelBuffer 的代码。在我在 iPad Pro 上尝试之前,我的第一次尝试效果很好:

以上在 iPad Pro 上崩溃,因为CVPixelBufferGetDataSize(self)略大于CVPixelBufferGetDataSize(pixelBufferCopy),所以 memcpy 写入未分配的内存。

所以我放弃了这个并尝试了这个:

这适用于我的两个测试设备,但它刚刚接触到实际客户,结果证明它在 iPad 6 上崩溃(到目前为止只有那个设备)。这是一个再次EXC_BAD_ACCESS呼吁memcpy()

考虑到让它可靠地工作似乎有多困难,没有一个简单的 API 调用似乎很疯狂。还是我让它变得比需要的更难?感谢您的任何建议!

0 投票
1 回答
760 浏览

swift - 是否可以更改 CVPixelBuffer 中捕获的 AR 图像的分辨率?

我在 ARKit 应用程序中使用预训练的 CoreML 模型。我正在从 ARCamera 捕获图像并将它们放入 CVPixelBuffer 进行处理:

ARKit 可以捕获 YCbCr 格式的像素缓冲区。要在 iPhone 的显示器上正确渲染这些图像,您需要访问像素缓冲区的luma和平面,并使用 float4x4矩阵chroma将全范围 YCbCr 值转换为 sRGB 。ycbcrToRGBTransform所以我了解如何处理颜色。

但我想知道是否可以更改 CVPixelBuffer 中捕获的 AR 图像的分辨率

怎么做?我需要一个尽可能低的处理。