我正在与AVCaptureSession
用于捕获图像。它工作正常
但没有给出好的解决方案。我将其与iPhone相机拍摄的图像进行了比较,发现iPhone相机拍摄的图像比iPhone相机拍摄的图像要好得多AVCaptureSession
image.
我在 stackOverflow 上看到了 3-4 个关于此问题的链接,但找不到任何解决方案。
我也尝试过所有预设
AVCaptureSessionPresetPhoto,
AVCaptureSessionPresetHigh,
AVCaptureSessionPresetMedium,
AVCaptureSessionPresetLow,
AVCaptureSessionPreset352x288,
AVCaptureSessionPreset640x480,
AVCaptureSessionPreset1280x720,
AVCaptureSessionPreset1920x1080,
AVCaptureSessionPresetiFrame960x540,
AVCaptureSessionPresetiFrame1280x720,
但静态图像的质量较差。如果我的问题不够清楚或者我遗漏了什么,请告诉我。
当将预设 AVCaptureSessionPresetPhoto 与 AVCaptureStillImageOutput 结合使用时,我能够在 iPhone 4S 上以 3268x2448 的分辨率捕获图像,这与内置相机应用程序产生的分辨率完全相同。 iPhone 4、Retina iPad 等也是如此,因此如果您使用带有静态图像输入的预设,您将从以下位置获得样本缓冲区-captureStillImageAsynchronouslyFromConnection:completionHandler:
这是原始相机分辨率。
关于照片质量,请记住,内置相机应用程序能够通过快速采集不同曝光级别的图像来捕获高动态范围 (HDR) 照片。我们无法通过标准 AV Foundation API 访问此信息,因此我们得到的只是一张处于定义的曝光级别的图像。
如果你关闭 HDR,图像质量对我来说看起来是一样的。以下是使用 AVCaptureStillImageOutput 拍摄的照片的放大部分:
这是内置照片应用程序中的一张:
忽略由于相机方向稍有变化而导致的照明的细微差异,两种方式拍摄的图像的分辨率和保真度似乎是相同的。
我使用 SimplePhotoFilter 示例应用程序捕获了第一张图像我的开源 GPUImage 框架 https://github.com/BradLarson/GPUImage,将默认的 GPUImageSketchFilter 替换为 GPUImageGammaFilter,该过滤器不调整伽玛值,仅充当直通。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)