это всего лишь довольно стандартный код, который я пробовал. То, что я пытаюсь сделать, это разместить два глаза и рот на очень стабильном портретном изображении. Вот что я пробовал:
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;
}
}
Проблема в том, что мои изображения переводят свой центр, но в очень неудобное положение (также известное как неправильное положение)! Хотя они отображаются на правильном расстоянии друг от друга, за исключением того, что рот находится вверху. Это означает, что есть:
Рот сверху, на несколько сантиметров ниже есть два глазных яблока, которые находятся на расстоянии нескольких сантиметров друг от друга. Таким образом, они правильно масштабируются в соответствии с видом изображения, они просто находятся не в том месте