내장 된 CoreImage
얼굴 검색 기능을 사용하여 감지 된 얼굴에 UIImage
자를 잘라내려고합니다. 나는 얼굴을 제대로 감지 할 수있는 것 같지만 얼굴을 경계로 내 UIImage
을 자르려고 할 때 아무데도 거의 맞지 않습니다.iOS - 감지 된 얼굴로 이미지 자르기 문제
-(NSArray *)facesForImage:(UIImage *)image {
CIImage *ciImage = [CIImage imageWithCGImage:image.CGImage];
CIContext *context = [CIContext contextWithOptions:nil];
NSDictionary *opts = @{CIDetectorAccuracy : CIDetectorAccuracyHigh};
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:context options:opts];
NSArray *features = [detector featuresInImage:ciImage];
return features;
}
을 ... 그리고 이미지를자를 수있는 코드는 다음과 같습니다 : 내 얼굴 인식 코드는 다음과 같습니다
-(UIImage *)imageCroppedToFaceAtIndex:(NSInteger)index forImage:(UIImage *)image {
NSArray *faces = [self facesForImage:image];
if((index < 0) || (index >= faces.count)) {
DDLogError(@"Invalid face index provided");
return nil;
}
CIFaceFeature *face = [faces objectAtIndex:index];
CGRect faceBounds = face.bounds;
CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage, faceBounds);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
return croppedImage;
}
내가 사용하고 그것에서 단지 1 얼굴 이미지가 테스트를 위해, 그리고 아무 문제없이 그것을 감지하는 것으로 보인다. 그러나 작물은 벗어났다. 이 코드의 문제점은 무엇입니까?
이 코드에 문제가 있습니까? –