核心图像过滤器的iOS实现包括一类CICategoryVideo过滤器,这些过滤器大概可以用来处理实时视频流。这意味着工作流的速度足够快,可以获取视频帧,对其应用一个或多个过滤器,然后将结果帧传递给显示/保存。
有没有人知道一个示例项目,说明了这是如何完成的?到目前为止,我对CIFilters所做的就是将一个UIImage转换为一个CIImage,用一个CIFilter处理它,然后将它转换回一个UIImage来显示。
我假设要在视频处理流中使用CI过滤器,必须使用核心视频pixelBuffers,将它们映射到CIImages,处理它们,然后将结果映射回像素缓冲区。我已经用OpenGL完成了这类处理,甚至将视频帧转换为CIImages,以便在视频流中检测人脸,但不知道如何将CIFilter的输出返回到pixelBuffer中,以跟上视频的帧。
发布于 2017-05-27 08:10:50
这个项目使用CICategoryVideo来完成您所描述的内容:
https://developer.apple.com/library/content/samplecode/CIFunHouse/Introduction/Intro.html
CIFunHouse项目展示了如何将内置的核心图像和自定义CIFilters应用于照片和视频。该应用程序提供视图控制器,用于添加照片和视频源,从列表中选择CIFilters,并对筛选参数进行实时调整。该项目还包含用于自定义CIFilter子类的代码,用于效果,如Sobel边缘检测、旧式胶片和假场深度外观。代码还演示了如何将过滤后的视频流保存到ALAssetsLibrary中,同时在显示器上预览视频。
很抱歉,答案迟了3年。
https://stackoverflow.com/questions/22664549
复制相似问题