#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 качество изображения становится слишком низким, и я не могу выполнить свою задачу, используя это изображение. Есть ли какой-либо другой альтернативный метод?