我正在使用AVCaptureSession
&AVCapturePhotoOutput
以格式从设备的相机中捕获 RAW 照片数据kCVPixelFormatType_14Bayer_RGGB
。
我已经在AVCapturePhotoCaptureDelegate
回调中获取原始照片样本缓冲区:
func capture(captureOutput: AVCapturePhotoOutput,
didFinishProcessingRawPhotoSampleBuffer rawSampleBuffer: CMSampleBuffer?,
previewPhotoSampleBuffer: CMSampleBuffer?,
resolvedSettings: AVCaptureResolvedPhotoSettings,
bracketSettings: AVCaptureBracketedStillImageSettings?,
error: Error?) {
guard let rawSampleBuffer = rawSampleBuffer else { return }
guard let pixelBuffer = CMSampleBufferGetImageBuffer(rawSampleBuffer) else { return }
}
我现在正在尝试按照这个问题的答案来获取像素值,CVPixelBufferRef
但是当使用 14 位 Bayer RGGB 像素格式而不是答案中提到的 32 位 RGB 格式时,我无法弄清楚如何做到这一点。