Core Image编程指南翻译一(关于CoreImage)
关于Core Image
Core Image是一种图像处理和分析技术,旨在为静态和视频图像提供近实时处理。它使用GPU或CPU渲染路径,对Core Graphics,Core Video和Image I / O框架中的图像数据类型进行操作。Core Image通过提供易于使用的应用程序编程接口(API)隐藏了低级图形处理的细节。不需要了解OpenGL,OpenGL ES或Metal的细节来充分利用GPU的强大功能,也无需了解Grand Central Dispatch(GCD)以获得多核处理的优势。Core Image为您处理细节。
图I-1 Core Image在操作系统中的关系
image
Core Image粗略
Core Image框架提供:
- 访问内置图像处理滤镜
- 特征检测功能
- 支持自动图像增强
- 将多个滤镜链接在一起以创建自定义效果的功能
- 支持创建在GPU上运行的自定义滤镜
- 基于反馈的图像处理功能
在macOS上,Core Image还提供了一种打包自定义滤镜以供其他应用程序使用的方法。
Core Image高效且易于用于处理和分析图像
Core Image提供数百种内置滤镜。您可以通过为滤镜的输入参数提供键值对来设置滤镜。一个滤镜的输出可以是另一个滤镜的输入,从而可以将多个滤镜链接在一起以产生惊人的效果。如果创建要再次使用的复合效果,则可以将CIFilter子类化以捕获特效“recipe”。
有十几种类别的滤镜。有些旨在实现艺术效果,例如风格化和半色调滤镜类别。其他的最适合修复图像问题,例如颜色调整和锐化滤镜。
Core Image可以分析图像的质量,并提供一组具有最佳设置的滤镜,用于调整色相,对比度和色调等内容,以及校正闪光瑕疵(如红眼)。它通过一个方法调用完成所有这一切。
Core Image可以检测静止图像中的人脸特征,并在视频图像中随时间跟踪它们。了解面部的位置可以帮助您确定放置小插图的位置或应用其他特殊滤镜。
查询Core Image以获取滤镜及其属性列表
Core Image为其滤镜提供了“内置”参考文档。您可以查询系统以找出可用的过滤器。然后,对于每个滤镜,您可以检索包含其属性的字典,例如其输入参数,默认参数值,最小值和最大值,显示名称等。
Core Image可以优化实时视频处理性能
如果您的应用需要实时处理视频,您可以采取一些措施来优化性能。
使用Image Accumulator支持基于反馈的处理
CIImageAccumulator类专为高效的基于反馈的图像处理而设计,如果您的应用需要对动态系统进行成像,您可能会觉得这很有用。
创建和分发自定义内核和滤镜
如果内置滤镜都不适合您的需求,即使链接在一起,也可以考虑创建自定义滤镜。您需要了解在像素级别运行的内核程序 - 因为它们是每个滤镜的核心。
在macOS中,您可以将一个或多个自定义滤镜打包为图像单元,以便其他应用程序可以加载和使用它们。