2015-07-02 30 views
0

我正在用swift编写应用程序,并使用GPUImage捕获和处理图像。我正在寻找一种减少曝光时间以减少运动模糊的方法。如果你也很快在框架中移动,它看起来非常模糊。我有很好的照明,所以我不确定为什么曝光不够快。使用GPUImage捕获时减少不必要的运动模糊

目前,我正在做这个设置GPUImage:

self.stillCamera = GPUImageStillCamera(sessionPreset: AVCaptureSessionPreset640x480, cameraPosition: .Front) 
self.stillCamera!.outputImageOrientation = .Portrait 

我然后设置我想要的过滤器(作物和可选的效果)。 我然后开始预览:

self.stillCamera?.startCameraCapture() 

并捕获帧:

self.finalFilter?.useNextFrameForImageCapture() 
var capturedImage = self.finalFilter?.imageFromCurrentFramebuffer() 

回答

0

你看到这么长的曝光时间的原因是,您使用的是GPUImageStillCamera及其预览捕捉帧。 GPUImageStillCamera在底层使用AVCaptureStillImageOutput,并从中启用实时预览馈送。照片预览Feed在各种设备上以〜15 FPS或更低的速度运行,并且不像GPUImageVideoCamera那样提供清晰的图像。

您可能希望通过触发实际的照片捕捉(通过-capturePhotoProcessedUpToFilter:之类)或使用GPUImageVideoCamera捕捉AVCaptureStillImageOutput中的照片,并像上面那样捕获单个帧。

+0

感谢您的回复。简单地切换到GPUImageVideoCamera似乎没有太大区别。当我使用控制有效快门速度的GPUImageVideoCamera时,是否有一些参数?我一直在玩inputCamera.setExposureModeCustomWithDuration(),并且能够或多或少地得到我想要的结果,但是我不必担心自己调整ISO以确保曝光良好。 – theBaklava