本文价值与收获
看完本文后,您将能够作出下面的界面
基础知识
CIDetector 是什么
CIDetector是图像处理器,用于识别静止图像或视频中的显着特征(例如人脸和条形码)。
CIDetector使用图像处理技术来搜索和识别静止图像或视频中的显着特征(面部,矩形和条形码)。检测到的功能由CIFeature对象表示。
CIDetector可以维护许多可能影响性能的状态变量。因此,为了获得最佳性能,请重用CIDetector实例,而不要重复创建新实例。
CIDetector能够识别什么内容
- CIDetectorTypeFace 人脸识别
CIDetectorTypeFace是人脸检测器,用于搜索静止图像或视频中的面部,并返回提供有关检测到的面部信息的CIFaceFeature对象。
- CIDetectorTypeRectangle
CIDetectorTypeRectangle是矩形检测器,用于搜索静止图像或视频中的矩形区域,并返回提供有关检测到的区域信息的CIRectangleFeature对象。矩形检测器查找可能表示在图像透视图中出现的矩形对象的区域,例如在桌面上看到的纸或书。
- CIDetectorTypeQRCode 条形码识别
CIDetectorTypeQRCode是条形码检测器,它在静止图像或视频中搜索快速响应代码(一种二维条形码),并返回提供有关检测到的条形码信息的CIQRCodeFeature对象。
- CIDetectorTypeText
CIDetectorTypeText是文本检测器,用于搜索静止图像或视频中的文本,并返回提供有关检测到的区域信息的CITextFeature对象。
文本检测器查找可能包含直立文本但不执行光学字符识别的区域。
- CIDetectorAccuracy
用于指定检测器所需精度的键。
- CIDetectorTracking
用于启用或禁用检测器的面部跟踪的键。当您要跟踪视频中各帧的脸部时,请使用此选项
- CIDetectorEyeBlink
CIDetectorEyeBlink Core Image是否将执行其他处理以识别检测到的面部中的闭眼的选项。
- CIDetectorSmile
Core Image是否将执行其他处理以识别检测到的面部中的笑容的选项
检测器的一般流程
1、 定义CIDetector
- let detector = CIDetector(ofType: CIDetectorTypeFace,
- context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])
- 设置类型CIDetectorTypeFace
- 设置监测精度,我们设置为高精度
2、 将图像转化为CIImage
let newImage = CIImage(cgImage: image.cgImage!)
3、监测属性
let features = detector!.features(in: newImage) as! [CIFaceFeature]
我们设置人脸检测属性CIFaceFeature
4、转化一下坐标系统(左上)