Захват видео с помощью GPUImage с фокусировкой касанием и управлением экспозицией

Я использую это руководство: https://github.com/BradLarson/GPUImage для создания приложения для захвата видео. в iOS.

Приложение запущено и работает. У меня есть один запрос...

мы используем этот код для запуска сеанса захвата видео в реальном времени:

 GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc]        
 initWithSessionPreset:AVCaptureSessionPreset640x480    
 cameraPosition:AVCaptureDevicePositionBack];
 videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

 GPUImageFilter *customFilter = [[GPUImageFilter alloc]     
 initWithFragmentShaderFromFile:@"CustomShader"];
 GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0,   
 0.0, viewWidth, viewHeight)];


 [videoCamera addTarget:customFilter];
 [customFilter addTarget:filteredVideoView];

 [videoCamera startCameraCapture];

Но как включить функцию «фокус на касании» в стиле «выбор изображения» и коррекцию экспозиции при касании в этой структуре.

Является ли это возможным? Не могли бы вы указать мне в правильном направлении.

Пожалуйста помоги.

Заранее спасибо.


person metsburg    schedule 01.08.2013    source источник


Ответы (1)


Понял частично:

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

   UITouch *touch = [touches anyObject];
   CGPoint touchPoint = [touch locationInView:self.view];

    if([videoCamera.inputCamera isFocusPointOfInterestSupported]&&[videoCamera.inputCamera isFocusModeSupported:AVCaptureFocusModeAutoFocus])
   {

   if([videoCamera.inputCamera lockForConfiguration :nil])
   {
    [videoCamera.inputCamera setFocusPointOfInterest :touchPoint];
    [videoCamera.inputCamera setFocusMode :AVCaptureFocusModeLocked];

     if([videoCamera.inputCamera isExposurePointOfInterestSupported])
      {
        [videoCamera.inputCamera setExposurePointOfInterest:touchPoint];
        [videoCamera.inputCamera setExposureMode:AVCaptureExposureModeLocked];
    }
    [videoCamera.inputCamera unlockForConfiguration];
}
}

}

Экспозиция и фокус фиксируются, но через некоторое время зависают...

работаю над этим.

person metsburg    schedule 01.08.2013
comment
использование AVCaptureExposureModeAutoExpose приводит к зависанию входного видео. - person metsburg; 01.08.2013
comment
Хорошо... все заработало... вы не можете напрямую передавать точки касания в автоматическую экспозицию... вам нужно преобразовать ее в шкалу 0-1. - person metsburg; 01.08.2013
comment
не могли бы вы поделиться кодом, который у вас есть? Вы поддерживаете все направления? Кажется, я не могу заставить это работать в ландшафте. - person kanso; 31.12.2013
comment
@kanso: я не делал этого для пейзажа. - person metsburg; 31.12.2013
comment
Я не знаю почему, но это сработало, когда я установил camera.focusMode = .autoFocus. Это хорошо или плохо?? - person Nikhil Manapure; 05.07.2017