ios - 使用什么 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
}
我希望它看起来像什么:
解决方案
推荐阅读
- python - 将二维数组转换为图像
- javascript - 如何使用嵌套组件对组件进行快照测试?
- ios - Swift - 根据日期数组对不同的数组进行排序
- php - 如何在 WordPress 中为已注销的用户添加重定向异常
- python - 以 JSON 格式发送 OpenCV 图像
- git - 如何将 GitHub QGumboParser 库添加到 macOS 上的 Qt 项目?
- javascript - 来自屏蔽输入文本的时刻 js 无效日期
- c++ - 无法手动调用 std::string 的析构函数
- c++ - 更改常量 Mat opencv 的值
- vuejs2 - 如何为 v-treeview 添加右键单击事件以在 vuetify 中打开菜单?