问题标签 [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.
swift - 在 Metal 着色器中写入 0-Alpha 无法正确渲染
我正在尝试对通过 UIView 播放的 mp4 视频进行色度键控。
我每帧都得到一个纹理,如下所示:
像这样将它传递给我的着色器:
着色器如下所示:
显示如下:
示例层添加如下:
但是当电影回放时,我期望透明的区域是黑色的,它后面的 UIView 是蓝色的。
有任何想法吗?
swift - Swift:将灰度图像转换为包含视差的 CVPixelBuffer
我有一个深度数据的灰度图像,该图像已从其原始分辨率上采样。我不知道如何将放大的深度图像(r,g,b)的像素值转换为浮点数。
有没有办法将像素的白度级别转换为浮点值?
无论如何我可以转换与图像关联的 CVPixelBuffer 的 CVPixelBufferFormatTypes 吗?
换句话说,有没有办法将灰度图像的像素缓冲区转换为包含视差浮动的 CVpixelbuffer?
我使用以下代码从上采样深度数据的 cgimage 表示中提取 cvpixelbuffer:-
objective-c - 如何在 Swift 中复制 CVPixelBuffer?
我正在尝试将一些 ObjC 代码移植到 Swift。该代码是 Flutter Camera-Plugin(第 265 行)的一部分。该插件允许实时预览相机。
作为一名 Swift 程序员,我不知道这里发生了什么。做什么OSAtomicCompareAndSwapPtrBarrier()
以及如何将这段代码转移到 Swift?
swift - 如何将 ARKit 捕获帧的 CVPixelBuffer 颜色空间转换为 RGB
我想为我训练有素的模型使用 coreML 和视觉,但这只需要RGB
颜色空间的图像。我想知道如何转换ARFrame
CVPixelBuffer
为色彩空间。我需要作为返回类型。我读到可以使用金属着色器轻松完成,但我想将其用于项目的其余部分。有没有没有金属着色器的解决方案?如果不是,我怎么能在保留的同时使用金属着色器?提前感谢您的回答!ycbcr
RGB
CVPixelBuffer
SceneKit
SceneKit
ios - 内存管理 - CVPixelBuffer 到 UIImage,使用 CIImage 和 VTCreateCGImageFromCVPixelBuffer 的区别
我有两个解决方案转换CVPixelBuffer
为UIImage
.
- 使用 CIImage 及其上下文
第一个解决方案是使用CIImage
and CIContext
。
- 使用 VTCreateCGImageFromCVPixelBuffer
代码看起来像这样。
在此解决方案中,我使用此扩展方法。
从视频中提取图像的整个过程如下。
全过程
- 串行提取所有帧。
- 使用 .将每个图像同时缓存在磁盘中
OperationQueue
。
问题
当图像同时缓存时会出现问题,使用CIContext
及其createCGImage(ciImage:rect:)
. 在第一个场景中所有缓存过程结束之前,内存占用会越来越高。但是,第二种方式,它会在每个 workItem 完成时释放它的内存。
我真的不知道为什么。
这是我与此问题相关的缓存方法。
swift - 从 AVCapturePhotoDelegate 方法中检索 CVPixelBuffer
我想从didFinishProcessingPhoto
委托方法中获取一个像素缓冲区,但它是零。
和扩展:
在此之前,我显然是在向会话中添加输出。我应该使用与该委托不同的方法吗?
swift - 如何更改 CVPixelBuffer 数据格式
我将 UIImage 转换为 CoreML 的 CVPixelBuffer,但我想更改 RGB 像素,例如 R/1.5、G/2、B/2.5。
我可以使用 读取像素数据assumingMemoryBound(to : UInt8.self)
,但是如何修改 CVPixelBuffer 中的像素数据?
ios - 在任何 iOS 设备上复制 CVPixelBuffer
我很难想出在任何 iOS 设备上可靠地复制 CVPixelBuffer 的代码。在我在 iPad Pro 上尝试之前,我的第一次尝试效果很好:
以上在 iPad Pro 上崩溃,因为CVPixelBufferGetDataSize(self)
略大于CVPixelBufferGetDataSize(pixelBufferCopy)
,所以 memcpy 写入未分配的内存。
所以我放弃了这个并尝试了这个:
这适用于我的两个测试设备,但它刚刚接触到实际客户,结果证明它在 iPad 6 上崩溃(到目前为止只有那个设备)。这是一个再次EXC_BAD_ACCESS
呼吁memcpy()
。
考虑到让它可靠地工作似乎有多困难,没有一个简单的 API 调用似乎很疯狂。还是我让它变得比需要的更难?感谢您的任何建议!
swift - 是否可以更改 CVPixelBuffer 中捕获的 AR 图像的分辨率?
我在 ARKit 应用程序中使用预训练的 CoreML 模型。我正在从 ARCamera 捕获图像并将它们放入 CVPixelBuffer 进行处理:
ARKit 可以捕获 YCbCr 格式的像素缓冲区。要在 iPhone 的显示器上正确渲染这些图像,您需要访问像素缓冲区的luma
和平面,并使用 float4x4矩阵chroma
将全范围 YCbCr 值转换为 sRGB 。ycbcrToRGBTransform
所以我了解如何处理颜色。
但我想知道是否可以更改 CVPixelBuffer 中捕获的 AR 图像的分辨率?
怎么做?我需要一个尽可能低的处理。