2012-07-23 5 views
1

내가 이미지에서 얼굴을 검출하기 위해 아래의 코드를 사용한 작동하지 않습니다 :얼굴 인식 알고리즘은

-(void)markFaces:(UIImageView *)imagePick { 

CIImage* image = [CIImage imageWithCGImage:imagePick.image.CGImage]; 
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace 
              context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]]; 
NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation]; 
NSLog(@"imageOptions %@",imageOptions); 
NSArray* features = [detector featuresInImage:image options:imageOptions]; 

if([features count] > 0) 
{ 
    NSLog(@"Face Found"); 
} 
else 
{ 
    NSLog(@"Face not Found");   
} 
} 

내가 풍경에서 스냅을 클릭하면이 알고리즘이 작동하지 않습니다 방법. 왜? 어떤 도움을 주시면 감사하겠습니다.

덕분에 사전에

+1

그것을합니까 (내가 그것을 보았으므로 이제 버그를 제출해야합니다) 것을 짜증나 세로로 거꾸로 촬영 한 이미지 (맨 위에있는 홈 버튼)에서 작동합니다. 변형을 적용하여 캡처 이미지를 회전 할 수 있습니다 .. – lukya

+0

살펴보기 http://stackoverflow.com/questions/10496724/how-to-develop-a-face-recognition-iphone-app/10497002#10497002 그것은 당신을 도울지도 모른다 : –

답변

0

나는 문제가이 라인에 생각 :

NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation]; 

당신은 실제로 당신이 전달하는 숫자가 전용으로 세로 방향을 찾아 그것을 말하고있다 6.

헤더 파일의 문서에 다음 내용이 나와 있습니다.

// [ CIDetector 기능 이미지 : 옵션 :]

/*이 키의 값은 kCGImagePropertyOrientation에있는 과 같은 1..8의 정수 NSNumber입니다. 해당 방향이 감지되면 해당 방향에 따라 이 수행되지만 반환되는 기능의 좌표는 여전히 이미지의 좌표를 기반으로합니다. */

그리고 옵션은

enter image description here

그것은 문서화되어 있지 않습니다 featuresInImage:options:

+0

좋아, 감사한다 u와 나는 또한 그것을 역시 찾아 냈다. – iYahoo