【问题标题】:Using iPhone camera as brightness sensor使用 iPhone 相机作为亮度传感器
【发布时间】:2011-06-14 18:01:40
【问题描述】:

我正在尝试将前置摄像头用作亮度传感器(显然,没有用于调整屏幕亮度的单独亮度传感器的公共 API)。

我已经设法设置了一个视频捕获会话并使用 AVCaptureVideoOutput 从视频中抓取帧,并计算帧的亮度。但是,相机会不断调整其曝光设置以补偿亮度,这对于录制视频非常有意义,但会阻止我获得实际的亮度值。

例如,如果我将手指放在摄像头上,亮度值会迅速下降到 0,但几秒钟后,随着摄像头的补偿,它又会重新回升。

那么...有没有办法手动设置曝光并禁用自动调整?我尝试设置 AVCaptureDevice.exposureMode,但似乎没有任何区别。

或者,有没有办法以某种方式从捕获输出中获取曝光信息,以便我可以适当地调整亮度计算?

更新: 我可以通过这种方式获取 EXIF 信息;现在我只需要弄清楚如何调整我的亮度计算。

NSDictionary* dict = (NSDictionary*) CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary, NULL);
NSString* exp = [nsDict objectForKey:@"ExposureTime"];

【问题讨论】:

    标签: iphone ios


    【解决方案1】:

    你记得在设置曝光模式之前给lockForConfiguration打电话吗?

    您可以使用像素缓冲区上的CVBufferGetAttachment 访问各种元数据,您可以从样本缓冲区获取;它可能包括曝光状态。

    【讨论】:

    • 我确实锁定了配置,exposureMode属性反映了我设置的值,但它似乎仍在调整。 CVBufferGetAttachment 完成了这项工作;我将在我的问题中添加详细信息。
    猜你喜欢
    • 2015-11-16
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多