我试图使用CIDetector / CIFaceDetector进行基本的人脸检测,虽然它似乎能正确识别人脸,但是在我投入的所有内容中,边界矩形始终不准确。这是一个示例,其边界检测为绿框:http://i.imgur.com/bQNaEnq.jpg
似乎所有东西都被这个量普遍地向下移动或反映出来。它的坐标来自左下角而不是左上角。我已在此图像上尝试了所有八个CIDetectorImageOrientations,它们都返回相同的错误坐标。我在这里错过了什么?这是代码:
NSDictionary *detectorOptions = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh };
self.faceDetector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions];
self.features = [self.faceDetector featuresInImage:[CIImage imageWithCGImage:image.CGImage options:@{CIDetectorImageOrientation: @(1)}]];
真的是这样。该图像是一个基本的UIImage imageWithData:来自网络。
答案 0 :(得分:1)
您正在使用UIKit和Core Image。这些框架中的每一个都使用不同的协调系统。
您可能正在使用Core Image坐标绘制绿色矩形到UIKit上下文。您的代码可以正常工作,您只需要转换坐标。
您还可以在iOS Dev Library
中找到对它的引用请参阅CoreImage and UIKit coordinates blog post,了解如何在这两个系统之间进行转换。