I need to process the ProRaw photo as soon as it is captured.
Our flow for the Bayer Raw includes creating an MTLTexture
from a CVPixelBuffer
. But with ProRaw looks like the problem is even before this step.
We need a linear image so I've tried the following sample (adjusted to work on iOS 14):
var options: [CIRAWFilterOption: Any] = [
.baselineExposure: 0.0,
.boostAmount: 0.0,
.boostShadowAmount: 0.0,
.disableGamutMap: true
]
if #available(iOS 14.3, *) {
options[.ciInputLocalToneMapAmountKey] = 0.0
}
let pxFilter = CIFilter(cvPixelBuffer: photo.pixelBuffer!, properties: photo.metadata, options: options)!
let pxImage = pxFilter.outputImage!
(ignore all the force unwrappings, it is just a proof of concept)
And the output image is always overexposed here:
How can I get a linear image with proper exposure?