некоторая проблема, когда я пытаюсь использовать два CIFilter - PullRequest
1 голос
/ 18 января 2012

Я хочу, чтобы черно-белое изображение было максимально четким для приложения iPad et iPhone.

я многое для этого сделал:

1 - я делаю снимок с камеры iPad или iPhone.

2 - я применяю свой первый фильтр == CIColorMonochrome ==, и я показываю, чтобы убедиться, что это работает. мой первый фильтр работает хорошо.

3 - я восстанавливаю результат моего последнего фильтра и использую его для применения моего нового фильтра == CINoiseReduction == и отображаю его, чтобы убедиться, что это тоже работает! но на этот раз ничего не отображается, поэтому я не знаю почему.

      //CIColorMonochrome
    CIFilter * monochromeFilter;
    monochromeFilter = [CIFilter filterWithName:@"CIColorMonochrome"];
    [monochromeFilter setValue:beginImage forKey:@"inputImage"];

    //Red Green Blue Alpha
    [monochromeFilter setValue:[CIColor colorWithString:@"255 255 255 1.0"] forKey:@"inputColor"];

    [monochromeFilter setValue:[NSNumber numberWithFloat:1] forKey:@"inputIntensity"];
    CIImage* monochromeImage = [monochromeFilter valueForKey:@"outputImage"];
    CIImage* outputImage = monochromeImage;

    //---===---

    CIFilter* noiseReductionFilter = [CIFilter filterWithName:@"CINoiseReduction"];

    //[noiseReductionFilter setDefaults];

    [noiseReductionFilter setValue:outputImage forKey:@"inputImage"];
    [noiseReductionFilter setValue:[NSNumber numberWithFloat:0.2] forKey:@"inputNoiseLevel"];
    [noiseReductionFilter setValue:[NSNumber numberWithFloat:0.40] forKey:@"inputSharpness"];
    [noiseReductionFilter retain];

    CIImage* noiseReductionImage = [noiseReductionFilter valueForKey:@"outputImage"];

    // ---===---
    outputImage = noiseReductionImage;

    CGImageRef cgimg = [context createCGImage:outputImage fromRect:[beginImage extent]];
    UIImage* newImg = [UIImage imageWithCGImage:cgimg];
    CGImageRelease(cgimg);

    [imageView removeFromSuperview];

    CGRect imageFrame = [imageView frame];

    [imageView release];

   // [self noiseReduction:newImg];

    imageView = [[UIImageView alloc]initWithImage:newImg]; 
    NSLog(@"%@ ===---=== " ,[self noiseReduction:newImg]);
    if (flag == 0)
        [imageView setFrame:imageFrame]; NSLog(@"setFrame image");

    NSLog(@"%@ ==== ", imageView);

    [[self view]addSubview:imageView];

1012 * приветливо *

1 Ответ

0 голосов
/ 03 августа 2014

Документация гласит: «Доступно в OS X v10.4 и более поздних версиях».https://developer.apple.com/library/ios/documentation/graphicsimaging/Reference/CoreImageFilterReference/Reference/reference.html#//apple_ref/doc/uid/TP40004346

...