Objective C非锐化掩码过滤器Xcode

时间:2012-06-04 15:56:58

标签: objective-c ios filter photo imaging

在针对iOS的Objective C中创建非锐化遮罩滤镜的最有效方法是什么?是否最好实现像ImageMagick这样的开源或从头开始构建。

我认为基本公式通常如下(如果我没有做对,请发表评论)。

  1. 重复原件
  2. 模糊复制(高斯)
  3. 通过“差异”与原创混合
  4. 使用结果来掩盖原始
  5. 增加原始未遮罩区域的对比度。

2 个答案:

答案 0 :(得分:1)

Core Image内置CIUnsharpMask filter,但我不确定它是否可在iOS上使用。 Brad Larson的GPUImage framework也有一个非锐化的蒙版过滤器。

与交叉编译ImageMagick或编写自己的方法相比,这两种方法都应该非常快速且易于实现。

答案 1 :(得分:1)

(UIImage *)useOfUnsharpMask:(CIImage *)beginImage 
{

    float sliderValue = sharpnessSlider.value;
    CIFilter *filter = [CIFilter filterWithName:@"CIUnsharpMask" keysAndValues:kCIInputImageKey,beginImage,@"inputIntensity",[NSNumber numberWithFloat:sliderValue],@"inputRadius",@2.50, nil];
    CIContext *context = [CIContext contextWithOptions:nil];

    CIImage *outputImage = [filter valueForKey: @"outputImage"];
    UIImage *finalImage = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:outputImage.extent]];

    return finalImage;
}

希望有所帮助:)