2013-03-26 2 views
1

Я новичок в программировании на iOS, и я искал множество ссылок на изображение, ответы и учебные пособия, но я до сих пор не понимаю. У меня есть тестовое приложение, у которого есть кнопки, легкие вещи, у меня есть изображение, когда я нажимаю кнопку фильтра, он делает фильтры и показывает это.Как я могу рисовать квадратные или круглые круги вокруг глаз и рта в ciimage iOS

CIImage *inputImage = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"pic1.JPG"]]; 
    CIFilter *colorControls = [CIFilter filterWithName:@"CIColorControls"]; 
    [colorControls setValue:inputImage forKey:@"inputImage"]; 
    [colorControls setValue:[NSNumber numberWithFloat:0.5f] forKey:@"inputSaturation"]; 
    [colorControls setValue:[NSNumber numberWithFloat:0.8f] forKey:@"inputContrast"]; 
    [colorControls setValue:[NSNumber numberWithFloat:0.4f] forKey:@"inputBrightness"]; 
    CIImage *outputImage = [colorControls valueForKey:@"outputImage"]; 
    CIContext *context = [CIContext contextWithOptions:nil]; 
    theImageView.image = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:outputImage.extent]]; 

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

- (IBAction)detectFace:(id)sender 
{ 
    CIImage *inputImage = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"pic1.JPG"]]; 
    CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace 
               context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]]; 
    NSArray* features = [detector featuresInImage:inputImage]; 
    for (CIFaceFeature *faceFeature in features){} 
} 

и теперь у меня есть проблема (и я не уверен, что это правильный старт). Пожалуйста, помогите я хотел бы знать, что делать next..thank вас заранее

ответ

1

Как насчет (не компилируется, но должен быть близок):

for (CIFaceFeature *faceFeature in features){ 
     CGRect faceRect = faceFeature.bounds; 

    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetLineWidth(context, 1.0); 

    CGContextAddRect(context, faceRect); 
    CGContextDrawPath(context, kCGPathStroke); 
} 
+0

Кроме того, убедитесь, чтобы добавить #import

+0

Если вам нужны кнопки, вы также можете создавать UIButtons с прямоугольником faceFeature.bounds, но это должно дать вам общую идею. –

+0

спасибо Оуэна теперь я получаю ошибки CGContextAddRect: недопустимый контекст 0x0 CGContextDrawPath: недопустимый контекст 0x0 CGContextSetLineWidth: недопустимый контекст 0x0 еще раз спасибо – userDC