有没有办法获得相机流的iOS上的亮度级别?

Hug*_*ade 6 camera objective-c ios

我正在使用iPhone/iPad相机来获取视频流并对流进行识别,但随着光照的变化,它会对稳健性产生负面影响.我已经在不同的灯光下测试了不同的设置并且可以使它工作,但是我需要尝试在运行时调整设置.

我可以计算每帧的简单亮度检查,但相机会调整并抛出我的结果.我可以观察到急剧变化并运行检查,但渐进的变化也会使我的结果失效.

理想情况下,我想要访问流的相机/ EXIF数据,看看它注册了未过滤的亮度,有没有办法做到这一点?

(我正在为iOS 5及更高版本的设备工作)

谢谢

mar*_*nip 8

适用于iOS 4.0及更高版本.可以从CMSampleBufferRef获取EXIF信息.

//Import ImageIO & include framework in your project. 
#import <ImageIO/CGImageProperties.h>
Run Code Online (Sandbox Code Playgroud)

在您的示例缓冲区委托免费桥接将获得CoreMedia的CMGetAttachment的NSDictionary结果.

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
    NSDictionary* dict = (NSDictionary*)CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary, NULL);
Run Code Online (Sandbox Code Playgroud)