6

我正在开发一个应用程序,我必须在其中检测左眼、右眼和嘴巴的位置。我有一个并imageView包含一个面部图像,现在我想获得眼睛和嘴巴的坐标。我已经看到了 2-3 个示例代码,但是在所有代码中都大致相同,我们必须反转我的视图以匹配我不想要的坐标,因为我的视图有一些其他控件。他们都在使用的另一件事self.viewimageView

UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];

但我imageView有框架,我不能用图像初始化它。当我这样做时,我发现 faceFeature 的眼睛和嘴巴坐标错误。

我已经从这个示例代码开始了我的代码,但是在这个视图中也正在反转它的Y坐标。

任何人都可以帮助我如何在UIImageView不反转图像的情况下检测面部眼睛和嘴巴的位置self.view

如果我的问题不够清楚,请告诉我。

4

2 回答 2

1

这里的技巧是将返回的点和边界从 CIDetector 转换为您的坐标,而不是翻转您自己的视图。CIImage 的原点位于左下角,您需要将其转换到左上角

int height = CVPixelBufferGetHeight(pixelBuffer);
CGAffineTransform transform = CGAffineTransformMakeScale(1, -1);
transform = CGAffineTransformTranslate(transform, 0, -1 * height);

/* Do your face detection */

CGRect faceRect = CGRectApplyAffineTransform(feature.bounds, transform);
CGPoint mouthPoint = CGPointApplyAffineTransform(feature.mouthPosition, transform);
// Same for eyes, etc

对于你关于 UIImageView 的第二个问题,你只需要做

imageview.image = yourImage

初始化图像视图后

于 2013-09-19T15:30:23.517 回答
0

解决了!- 将类编辑为包含所有面部对象(嘴和眼睛)的 faceContainer,然后旋转该容器,仅此而已。显然这是非常粗略的,但它确实有效。这是一个链接,http://www.jonathanlking.com/download/AppDelegate.m。然后用它替换示例代码中的应用程序委托。

-- 旧帖 --

看看这个Apple 文档,然后从这个苹果演讲开始幻灯片 42 。此外,您可能应该观看该演讲,因为它有一个您正在尝试实现的演示,它被称为“在 iOS 和 Mac OS X 上使用 Core Image”,并且在这里

于 2012-06-22T11:25:18.410 回答