Неправильные точки 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;
    }
}

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

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

5
задан MCKapur 15 June 2012 в 11:45
поделиться