我正在使用AVCapture基金会通过委托回调检索图像(从iPhone 4前置摄像头)。我已指定BGRA作为以下格式:
self.theOutput.videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
其中 self.output 的类型为 AVCaptureVideoDataOutput。
我可以正确预览图像。
我一直在尝试找到一种简单的方法来测试单个像素 RGB 以尝试更好地理解,例如在相机上拿着蓝卡,但数字只是在 80-110 之间波动,而我预期的 0,0,255 是什么?
当我在相机上拿着一张白卡时,我期望每个RGB都有255,但我接近120。似乎它正在将所有数字打折 50% 的白色。有什么理由吗?但是当我让直射光照射到相机上时,每个RGB元素都会得到255。
我觉得我在这里缺少一些基本的理解。
我希望每个 RGB 都有 255 个,但我对所有 RGB 都接近 120。
相机将尝试自动调整其曝光以获得最佳图像。在这种情况下,它可能假设图像的平均亮度应该在 128 左右,并进行调整以获得该值。相机无法分辨您面前的纸张是白色、黑色还是中间灰色,因此它假设它必须是中间灰色。