【问题标题】:CIFaceDetector origin inaccuracyCIFaceDetector 原点不准确
【发布时间】:2014-10-23 18:36:10
【问题描述】:

我正在尝试使用 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: 来自网络。

【问题讨论】:

    标签: objective-c cocoa core-image cifacefeature


    【解决方案1】:

    您正在那里使用 UIKit 和 Core Image。这些框架中的每一个都使用不同的协调系统。

    • UIKit 协调系统从左上角开始
    • 核心图像坐标从左下角开始

    您可能正在将带有 Core Image 坐标的绿色矩形绘制到 UIKit 上下文。您的代码可以正常工作,您只需要转换坐标即可。

    你也可以在iOS Dev Library找到对它的引用

    请参阅CoreImage and UIKit coordinates blog post,了解如何在这两个系统之间进行转换的非常简洁的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 2016-12-26
      • 2015-09-07
      • 2011-01-07
      • 1970-01-01
      • 2015-06-17
      相关资源
      最近更新 更多