【问题标题】:ios Image text and colour enhancement filterios 图片文字和颜色增强滤镜
【发布时间】:2018-01-31 19:06:56
【问题描述】:

我正在尝试 CIFilter 和 GPUImage 过滤器在图像上应用各种效果(亮度、对比度、饱和度等),但我很苦恼,需要如下所示的增强功能:

增强前过滤器

增强后过滤器

我试过的CIFilter代码:

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;
}

GPU图像过滤器:

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];

【问题讨论】:

  • 感谢您的回复,我会更新我的问题
  • 您要使用什么过滤器?你知道你的示例图像使用的是什么过滤器 - 看起来像淡入淡出吗?

标签: ios objective-c iphone image-processing uiimage


【解决方案1】:

在此处输入代码//希望这有帮助,它在 swift 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;
                    }


 // 

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

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

链接:用于演示项目。

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

【讨论】:

  • 我想这也可以通过“CIExposureAdjust”过滤器来实现。希望我能帮到你。
  • 不知道为什么它不适合你,但它是经过测试的代码。我已经执行了与你相同的操作。我也附上了一张图片,请看一下。最初它是一张暗淡的图像,这是应用滤镜后的图像。
  • @SwiftyCodes 您可以使用 Asker 自己的图片进行测试更新:i.stack.imgur.com/sYpC5.jpg
  • @VC.One 看看上传的图片吧!虽然贴纸视图中的图像不完整,但您仍然可以看到已应用的效果,我猜它工作!我也使用了一个滑块来减少和增加曝光调整强度,就像我使用 GPUImage 过滤器一样,但仅在 swift 中。我希望我能帮助你:)
  • 感谢更新。现在提问者可以看到这个答案如何应用于他们的问题/图像。
猜你喜欢
  • 2021-11-26
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 2016-10-26
相关资源
最近更新 更多