CIFaceFeature указывает неверные

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

CIImage *image = [CIImage imageWithCGImage: [tim.image CGImage]]; CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options: [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey: CIDetectorAccuracy]]; NSArray *feats = [detector featuresInImage: image]; for (CIFaceFeature *faceFeature in feats) { if (faceFeature.hasLeftEyePosition) { eyeLeft.center = faceFeature.leftEyePosition; } if (faceFeature.hasRightEyePosition) { eyeRight.center = faceFeature.rightEyePosition; } if (faceFeature.hasMouthPosition) { moth.center = faceFeature.mouthPosition; } } 

Проблема в том, что мои изображения действительно переводят их центр, но в очень неудобное положение (AKA – не правильное положение)! Хотя они появляются в правильном соотношении расстояний, за исключением того, что рот находится сверху. Это означает, что есть:

Рот сверху, на несколько сантиметров ниже есть два глазных яблока, которые находятся на расстоянии нескольких сантиметров друг от друга. Таким образом, они масштабируются правильно в соответствии с изображением, они просто ошибаются.

CIImage координат CIImage и UIImage являются обратными, поэтому вам нужно перевести координаты. Например:

 CGPoint ciMmouthCenter = faceFeature.mouthPosition; CGPoint uiMmouthCenter; uiMouthCenter.x = tim.image.size.width - ciMouthCenter.x; uiMouthCenter.y = tim.image.size.height - ciMouthCenter.y; 

Вы должны использовать приложение «SquareCam» из Apple. Он помещает квадрат в правильное положение для любой ориентации передних и задних камер. Для моего приложения я просто удалил код из «SquareCam», который определяет «faceRect». Для mouthPosition I интерполируется вдоль faceRect для процента значения x и y.

  • Проблема с обнаружением лиц с использованием CIDetector
  • В Objective C как мы можем размыть лицо круглой / круглой формой?
  • Проблема ориентации ios Vision VNImageRequestHandler
  • Распознавание лиц Обнаружение точек при обнаружении лица
  • Interesting Posts

    передавать данные из выбранной строки для просмотра контроллера

    Нарисуйте один CGlayer в другой CGlayer

    ios – объединить / объединить несколько аудиофайлов

    Размер приложения резко увеличился с экспортируемого IPA до подключения ITunes

    Права не совпадают: проблема с профилированием

    Отправить письмо в фоновом режиме от iOS

    «Объявление этой функции не является прототипом предупреждения в Xcode 9

    Переключение камер медленнее в AVCaptureSession

    Служба местоположения переходит в состояние «Неактивное» в iPhone 5

    UITextField вызывает textFieldDidEndEditing при очистке, но свойство `text` имеет данные

    Как включить кнопку после прокрутки пользователем текстового вида

    Как контроллер просмотра может «вставлять» себя в UINavigationController – особенно если он содержится в контроллере представления контейнера

    IOS CNContactStore executeSaveRequest сбой с CNErrorDomain Code = 500

    Установить константу для всех устройств

    Как уменьшить изображение в iOS, сглаживание, но не мягкое?

    Давайте будем гением компьютера.