我正在开发一款应用程序,我必须检测左眼,右眼和嘴巴的位置。
我的imageView
上有一个self.view
而imageView
包含一张脸部图片,现在我想要获得双眼和双眼坐标。我已经看到了2-3个示例代码,但是所有代码都大致相同,我们必须反转我的视图以匹配我不想要的坐标,因为我的视图有一些其他控件。还有一件事他们都在使用
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];
但我的imageView
有框架,我无法用图像初始化它。当我这样做时,我发现faceFeature的眼睛和嘴巴坐标错误。
我已经从this sample code启动了我的代码,但是在这个视图中,它正在反转其Y
坐标。
任何人都可以帮助我如何检测UIImageView
图像上的面部眼睛和嘴巴位置,而不会反转我的self.view
。
如果我的问题不够明确,请告诉我。
答案 0 :(得分: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
初始化图像视图后
答案 1 :(得分:0)
解决了! - 编辑了这个类,让faceContainer包含所有的face对象(嘴和眼睛),然后这个容器被旋转,就这样了。显然这很粗糙,但确实有效。这是一个链接http://www.jonathanlking.com/download/AppDelegate.m。然后用它替换示例代码中的app delegate。
- 旧帖子 -
查看此Apple Documentation,然后从this apple talk向前滑动42。此外,您应该观看演讲,因为它有一个演示您正在尝试实现的内容,它被称为“在iOS和Mac OS X上使用核心图像”,并且是here。