我使用核心图像进行人脸检测,像这样:
CIImage* image = [CIImage imageWithCGImage:aImage.CGImage];
//create Facedetector
NSDictionary *opts = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh
forKey:CIDetectorAccuracy];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:nil
options:opts];
//Pull out the features of the face and loop through them
NSArray* features = [detector featuresInImage:image];但是我发现,当我使用一张有着完全脸的图片时,它可以正确地检测到脸,但是当我使用不完全的脸时,它失败了,就像下面的快照一样:

我的代码有什么问题,CIDetector只对整个脸运行良好吗?
这里是我的代码,我只能检测到左边
发布于 2015-01-30 07:24:17
有时候,如果它不是一张满脸的脸,它是无法被发现的,我认为你不能对它做任何事情。
但是您可以在图像中添加一个白色边框,然后可以检测到它,查看下面的图片,或者深入到openCV中,看看openCV库是否可以检测到它。你的帖子中的图片有两张脸,如果你下载并试用它,你会发现,主要是因为它的右脸周围有白色边框,与背景颜色相同。

我所做的是添加imageView作为容器视图的子视图,该视图的框架略大于imageView的框架。然后,我对容器视图进行了快照。该图像反映快照图像的检测结果。
https://stackoverflow.com/questions/28228927
复制相似问题