Получите uImage Full HD из UIImagePickerControllerSourceTypeCamera без нажатия кнопки захвата

#iphone #opencv #camera #uiimagepickercontroller #face-detection

#iPhone #opencv #камера #uiimagepickercontroller #распознавание лиц

Вопрос:

С постоянной частотой я хочу получить UIImage для некоторой функциональности

 if (!_updateTimer) {
    _updateTimer = [[NSTimer scheduledTimerWithTimeInterval:self.updateFrequency
                                                     target:self
                                                   selector:@selector(updateLocations:)
                                                   userInfo:nil
                                                    repeats:YES] retain];
}
  

где self.updateFrequency = 1 / 20.0;

Как я могу постоянно извлекать изображение каждую секунду, не нажимая кнопку захвата?

Следующий код бесполезен для меня, поскольку он даст размер изображения iphone 320 * 480

 CGImageRef cgoriginal = UIGetScreenImage();
CGImageRef cgimg = CGImageCreateWithImageInRect(cgoriginal, rect);  
  

Мне нужно полное изображение, которое все отображается перед камерой с каждым частым интервалом.

Спасибо

Ответ №1:

Вызывайте takePicture метод всякий раз, когда вы хотите захватить изображение. Вы получите изображение с помощью методов делегирования.

 extern CGImageRef UIGetScreenImage();

CGImageRef cgoriginal = UIGetScreenImage();
CGImageRef cgimg = CGImageCreateWithImageInRect(cgoriginal, rect);            
UIImage *viewImage = [UIImage imageWithCGImage:cgimg];    
CGImageRelease(cgoriginal);                
CGImageRelease(cgimg);
  

Комментарии:

1. я знаю метод создания снимков. Но я не могу вызывать takePicture каждую секунду. Я должен сопоставлять какую-либо часть лица каждую секунду. Как только я получу правильную часть лица, тогда, наконец, я должен вызвать takePicture. Итак, для сопоставления мне нужно изображение без использования метода takePicture

2. Я уже написал эти коды в своем вопросе, что они вообще не работают для меня. Поскольку при использовании CGImageCreateWithImageInRect качество изображения становится слишком низким, и я не могу выполнить свою задачу, используя это изображение. Есть ли какой-либо другой альтернативный метод?