我正在开发一个应用程序,其中我必须检测左眼,右眼和嘴巴的位置。我在我的self.view上有一个imageView,imageView包含一个面部图像,现在我想得到眼睛和嘴巴的坐标。我已经看到了2-3个示例代码,但在所有代码中都大致相同,我们必须反转我的视图以匹配坐标,这是我不想要的,因为我的视图有一些其他控件。还有一件事他们都在用
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];但是我的imageView有框架,我不能用图片初始化它。当我这样做时,我发现faceFeature的眼睛和嘴巴坐标错误。
我的代码是从this sample code开始的,但是在这个视图中,我正在反转它的Y坐标。
有人能帮我吗?我怎么才能在不反转self.view的情况下检测UIImageView图像中的脸、眼睛和嘴巴的位置?
如果我的问题不够清楚,请告诉我。
发布于 2012-06-22 19:25:18
实现了!-编辑了这个类,让它有一个包含所有脸部对象(嘴巴和眼睛)的faceContainer,然后这个容器被旋转,仅此而已。显然,这是非常粗糙的,但它确实有效。这是一个链接,http://www.jonathanlking.com/download/AppDelegate.m。然后将示例代码中的应用程序委托替换为它。
--老帖子--
看看这个Apple Documentation,然后从this apple talk开始幻灯片42。此外,您可能应该观看演讲,因为它有一个演示,它被称为“在iOS和Mac上使用核心映像”,并且是here。
发布于 2013-09-19 23:30:24
这里的技巧是将返回的点和边界从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在初始化imageview之后
https://stackoverflow.com/questions/11154585
复制相似问题