首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于CIDetector的人脸检测问题

基于CIDetector的人脸检测问题
EN

Stack Overflow用户
提问于 2012-06-22 18:36:48
回答 2查看 3.6K关注 0票数 6

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

代码语言:javascript
复制
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];

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

我的代码是从this sample code开始的,但是在这个视图中,我正在反转它的Y坐标。

有人能帮我吗?我怎么才能在不反转self.view的情况下检测UIImageView图像中的脸、眼睛和嘴巴的位置?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-22 19:25:18

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

--老帖子--

看看这个Apple Documentation,然后从this apple talk开始幻灯片42。此外,您可能应该观看演讲,因为它有一个演示,它被称为“在iOS和Mac上使用核心映像”,并且是here

票数 0
EN

Stack Overflow用户

发布于 2013-09-19 23:30:24

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

代码语言:javascript
复制
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的问题,你只需要做

代码语言:javascript
复制
imageview.image = yourImage

在初始化imageview之后

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11154585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档