在针对 iOS 的 Objective C 中创建非锐化蒙版过滤器的最有效方法是什么?最好实现一些像 ImageMagick 这样的开源或从头开始构建。
我认为基本公式一般如下(如果我没有正确,请发表评论)。
- 复制原件
- 模糊重复(高斯)
- 通过“差异”与原始融合
- 使用结果来掩盖原始
- 增加原件未遮罩区域的对比度。
在针对 iOS 的 Objective C 中创建非锐化蒙版过滤器的最有效方法是什么?最好实现一些像 ImageMagick 这样的开源或从头开始构建。
我认为基本公式一般如下(如果我没有正确,请发表评论)。
Core Image 内置了CIUnsharpMask 过滤器,虽然我不确定它是否在 iOS 上可用。Brad Larson 的GPUImage 框架也有一个不清晰的蒙版滤镜。
与交叉编译 ImageMagick 或编写自己的方法相比,这两种方法都应该非常快速且易于实现。
(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;
}
希望有帮助:)