I am trying to get an image to look like as if it had been scanned with a colour scanner). The the first image is what I have produced by using the filters below. The second image is what I would like my photo to look like. Can anyone suggest a CIFilter or combination of, to get this scanned effect?
Filters I am using:
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
}
What I would like it to look like: