2017-08-23 1 views
4

J'essaie le filtre CIFilter et GPUImage pour appliquer différents effets (luminosité, contraste, saturation, etc.) sur une image, mais je me bats, j'aurais besoin d'une amélioration comme celle montrée ci-dessous :ios Texte d'image et filtre d'amélioration de couleur

Avant filtre Amélioration

Before Enhancement filter:

Après mise en valeur filtrent

After Enhancement filter

code CIFilter que j'ai essayé:

NSDictionary *options = @{ CIDetectorImageOrientation : 
           [[resultImage properties] valueForKey:kCGImagePropertyOrientation] }; 
NSArray *adjustments = [resultImage autoAdjustmentFiltersWithOptions:options]; 
for (CIFilter *filter in adjustments) { 
    [filter setValue:resultImage forKey:kCIInputImageKey]; 
    resultImage = filter.outputImage; 
} 

Filtre GPUImage:

UIImage *inputImage = [UIImage imageNamed:@"Msource.png"]; 
GPUImageAdaptiveThresholdFilter *stillImageFilter = [[GPUImageAdaptiveThresholdFilter alloc] init]; 
stillImageFilter.blurRadiusInPixels = 10.0;// adjust this to tweak the blur radius of the filter, defaults to 4.0 

UIImage *filteredImage = [stillImageFilter imageByFilteringImage:inputImage]; 
+0

Merci pour la réponse ur je vais mettre à jour ma question –

+0

Quel filtre voulez-vous utiliser? Savez-vous quel filtre utilise votre image d'exemple - ressemble à un fondu? –

Répondre

2

Entrez le code ici // Espérons que cela aide, son en rapide 3:

 var aCIImage = CIImage(); 
     var contrastFilter: CIFilter!; 
     var brightnessFilter: CIFilter!; 
     var gaussianBlurFilter: CIFilter!; 
     var pointFilter: CIFilter!; 
     var vignettFilter : CIFilter!; 
     var context = CIContext(); 
     var outputImage = CIImage(); 
     var newUIImage = UIImage(); 
     var finalImage = UIImage() 

     DispatchQueue.main.async 
         { 
          self.gaussianBlurFilter = CIFilter(name: "CIExposureAdjust"); 
          self.gaussianBlurFilter.setValue(self.aCIImage, forKey: "inputImage") 

          self.gaussianBlurFilter.setValue(NSNumber(value: sender.value), forKey: "inputEV"); 

          self.outputImage = self.gaussianBlurFilter.outputImage!; 

          let imageRef = self.context.createCGImage(self.outputImage, from: self.outputImage.extent) 

          self.newUIImage = UIImage(cgImage: imageRef!) 
          self.testView?.image = self.newUIImage; 
        } 


// 

Dark Image with text and having no filters applied to it

https://i.stack.imgur.com/s1STp.png

Same Image with text and having CIExposureAdjust Filter applied to it

https://i.stack.imgur.com/uU0Oz.png

Lien: Pour le projet de démonstration.

https://drive.google.com/open?id=0B-EIC_4IXtA9UjFwT3o0dXI1OTA

+0

Je suppose que cela peut être réalisé par le filtre "CIExposureAdjust" également. J'espère pouvoir vous aider. –

+0

Merci pour votre réponse, Son ne fonctionne pas –

+0

Je ne sais pas pourquoi cela ne fonctionne pas pour vous mais c'est un code testé .J'ai effectué la même opération que vous le faites. J'ai joint une image ainsi s'il vous plaît jeter un coup d'oeil à elle. Initialement, c'était une image terne, cette image est après l'application du filtre. –