图像编辑与眉毛检测:从基础设置到功能实现
1. 初始化与基础设置
在进行图像编辑和眉毛检测之前,有一些初始化工作需要完成。首先,我们需要确保自定义子类正确符合其父类的要求,避免在不符合要求时崩溃。虽然某些初始化方法可能在我们的场景中不会被使用,但为了让类能够编译通过,我们还是要完成必要的最小化操作。
接下来,我们开始进行初始设置,主要包括导入框架、定义类型和属性等操作,具体步骤如下:
1. 导入 Vision 框架 :Vision 框架提供了面部检测功能,我们将使用它来确定图像中眉毛的位置。
import Vision
- 定义类型和别名 :在
EditingViewController
类中,定义一些后续会用到的类型和别名,包括眉毛类型、眉毛位置、检测结果等。
// 有两种眉毛:左眉毛和右眉毛
enum EyebrowType { case left, right }
// 眉毛是其类型和位置的组合
typealias EyebrowPosition = (type: EyebrowType, position: CGPoint)
// 检测结果表示检测成功或失败,使用关联值携带额外信息
enum DetectionResult {
case error(Error)
case success([EyebrowPosition])