【发布时间】:2014-05-05 01:33:28
【问题描述】:
Core Image 过滤器的 iOS 实现包括一个过滤器类别 CICategoryVideo,可能可用于处理实时视频流。这意味着有一个工作流程足够快,可以拍摄一帧视频,对其应用一个或多个过滤器,然后将生成的帧传递给显示/保存。
有人知道一个示例项目来说明这是如何完成的吗?到目前为止,我对 CIFilters 所做的只是将 UIImage 转换为 CIImage,使用 CIFilter 对其进行处理,然后将其转换回 UIImage 进行显示。
我假设要在视频处理流中使用 CI 过滤器,您必须使用 Core Video pixelBuffers,将它们映射到 CIImages,处理它们,然后将结果映射回像素缓冲区。我已经使用 OpenGL 完成了这种类型的处理,甚至已经将视频帧转换为 CIImages 以在视频流中进行人脸检测,但不知道如何将 CIFilter 的输出足够快地返回到 pixelBuffer 以跟上视频的帧率。
【问题讨论】:
-
如果你想要实时性能,我建议使用 GPUImage 而不是 CIFilters。根据我的经验,从一个切换到另一个很容易
-
我已经完成了基于 OpenGL 的图像处理,例如 GPUImage,我是否正在尝试了解 CIFilters 及其功能。
-
在这种情况下,您将严重缺乏性能;)。将 CIImage 返回到 pixelBuffer 的官方方法是使用 CIContext 进行渲染。我不确定是否有任何其他方法可以提供更好的性能
标签: ios objective-c cifilter