【发布时间】:2013-02-14 01:10:59
【问题描述】:
我很难找到任何有关在 iPhone 或 iPad 上使用 OpenGL ES 裁剪图像的文档。
具体来说,我正在以较快的速度 (20 FPS) 捕获视频帧,并且需要快速裁剪图像的东西。在这里使用OpenGL可行吗?如果是这样,它会比使用 Core Image 及其相关方法进行裁剪更快吗?
似乎使用 Core Image 方法,我无法实现比 10-12 FPS 输出更快的速度,我正在寻找一种达到 20 的方法。对此使用 OpenGL 有什么建议或指示吗?
【问题讨论】:
-
与其自己编写所有的 OpenGL ES 代码,不如看看这个:github.com/BradLarson/GPUImage。特别是,GPUImageCropFilter 应该做你想做的事。
-
@BradLarson 嘿,是的,我仔细查看了您的代码,我不得不说我对您的工作印象深刻。在使用您的实现方面,我唯一感到矛盾的是它是否适用于实时视频源 - 仅仅是因为它被归类为图像过滤器。我不确定它是否打算以我需要的方式使用。你会说它可以以这种方式使用吗?肯定会省去我很多头痛..
-
编写它的唯一目的是对来自摄像机的实时视频进行操作。我在这里有一些基准:stackoverflow.com/a/6628208/19679(我需要为 iOS 6.0 更新)。构建并运行 FilterShowcase 示例以查看其对实时视频的执行情况。裁剪滤镜可能是同类中最快的,因此它应该在 iPhone 4 上以约 25-30 FPS 的速度裁剪和录制 720p 视频,在 4S 及更高版本上以稳定的 30 FPS 裁剪和录制 1080p 视频。
-
哇。那真是太棒了。我什至不需要 720p 视频,我使用 352x288 预设来缩小图像尺寸。你是救命稻草!
-
@BradLarson 实际上经过大量的烦躁和测试,我不知道 GPUImage 在这里有帮助。人脸检测只是让设备减速太多。我没有裁剪静态区域 - 它是动态的,由
CIFaceDetector结果确定。如果您注意到样本中的面部检测,则该框在渲染时的帧速率很慢。我将此归结为CIFaceDetector的缓慢,而不是我正在做的任何图像处理。这是悲惨的,但哦,好吧:(
标签: objective-c cocoa-touch opengl-es avfoundation core-image