首页 > 解决方案 > 使用什么 CIFilter 来获得扫描效果?

问题描述

我试图让图像看起来像是用彩色扫描仪扫描的)。第一张图片是我使用下面的滤镜制作的。第二张图片是我希望我的照片看起来的样子。任何人都可以建议使用 CIFilter 或组合来获得这种扫描效果吗?

我正在使用的过滤器:

let context = CIContext.init()

let sharpenCimage = self.sharpen(inputImage: ciimage, inputRadius: 2.5, inputIntensity: 1.0)
let colorControlCimage = self.colorControl(input: sharpenCimage!, contrast: 2.4, saturation: 0.6, brightness: 0.2)

    let CIColorMatrix = self.CIColorMatrix(inputImage: colorControlCimage!)


func colorControl(input: CIImage, contrast: Float, saturation: Float, brightness: Float) -> CIImage? {

    let filter = CIFilter(name: "CIColorControls")
    filter?.setValue(input, forKey: kCIInputImageKey)
    //filter?.setValue(contrast, forKey: kCIInputContrastKey)
    //filter?.setValue(saturation, forKey: kCIInputSaturationKey)
    //filter?.setValue(brightness, forKey: kCIInputBrightnessKey)
    filter?.setDefaults()
    return filter?.outputImage
}


func sharpen(inputImage: CIImage, inputRadius: Float, inputIntensity: Float) -> CIImage? {

    let filter = CIFilter(name: "CIUnsharpMask")
    filter?.setValue(inputImage, forKey: kCIInputImageKey)
    filter?.setValue(inputRadius, forKey: kCIInputRadiusKey)
    filter?.setValue(inputIntensity, forKey: kCIInputIntensityKey)
    return filter?.outputImage
}

func CIColorMatrix(inputImage: CIImage) -> CIImage? {

    let filter = CIFilter(name: "CIColorMatrix")
    filter?.setValue(inputImage, forKey: kCIInputImageKey)
    filter?.setDefaults()
    return filter?.outputImage
}

在此处输入图像描述

我希望它看起来像什么:

在此处输入图像描述

标签: iosswiftcore-image

解决方案


推荐阅读