iOS 傳感器之光感監(jiān)測(cè)----微信掃一掃具有檢測(cè)光感功能(二)

上一篇說(shuō)到了光感監(jiān)測(cè),由于攝像頭沒(méi)有光感監(jiān)測(cè),也沒(méi)有感光孔,所以只能是同檢測(cè)拍到的圖片亮度來(lái)達(dá)到識(shí)別是否需要照明,下面看一下實(shí)現(xiàn)過(guò)程:

#import

#import

@property(nonatomic,strong)AVCaptureVideoDataOutput*myVideoOutPut;

@property(nonatomic,strong)AVCaptureSession*mySession;

- (AVCaptureSession*)mySession

{

if(!_mySession) {

_mySession= [[AVCaptureSessionalloc]init];

[_mySessionsetSessionPreset:AVCaptureSessionPresetMedium];

}

return_mySession;

}

- (AVCaptureVideoDataOutput*)myVideoOutPut

{

if(!_myVideoOutPut) {

_myVideoOutPut= [[AVCaptureVideoDataOutputalloc]init];

[_myVideoOutPutsetAlwaysDiscardsLateVideoFrames:YES];

[_myVideoOutPutsetSampleBufferDelegate:(id)selfqueue:dispatch_get_main_queue()];

}

return_myVideoOutPut;

}

if([self.mySessioncanAddOutput:self.myVideoOutPut]) {

[self.mySessionaddOutput:self.myVideoOutPut];

}

[_mySessionstartRunning];

然后下面就是代理方法,就會(huì)得到圖片亮度

- (void)captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection

{

CFDictionaryRefmetadataDict =CMCopyDictionaryOfAttachments(NULL,

sampleBuffer,kCMAttachmentMode_ShouldPropagate);

NSDictionary*metadata = [[NSMutableDictionaryalloc]

initWithDictionary:(__bridgeNSDictionary*)metadataDict];

CFRelease(metadataDict);

NSDictionary*exifMetadata = [[metadataobjectForKey:(NSString*)kCGImagePropertyExifDictionary]mutableCopy];

floatbrightnessValue = [[exifMetadataobjectForKey:(NSString*)kCGImagePropertyExifBrightnessValue]floatValue];

NSLog(@"%f",brightnessValue);

}

得到這個(gè)值就可以

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容