我目前正在探索Apple的Core Image框架中的人脸检测功能。

现在,我正在玩苹果公司的示例项目,该示例项目在人的脸上涂上红色正方形。 (https://developer.apple.com/library/ios/samplecode/SquareCam/Introduction/Intro.html)

我的问题是人脸检测每帧都会发生,因此即使我不移动脸部,红场的大小也会疯狂变化。

我承认以下方法可以运行人脸检测。

NSArray* features = [detector featuresInImage:image];

我可以在以下循环中用眼,嘴的位置进行操作:
for(CIFaceFeature* feature in features)
{

}

有什么办法可以使我随时间推移的红色正方形(脸部区域)的大小变平滑?换句话说,如果人的脸不动,我想最小化红场大小的变化。

ps。我可以在Swift中获得答案。上面的方法是在Obj-C中使用的,因为我是从旧项目中获得的。

最佳答案

您可以保存返回的帧,如果新的返回帧与保存的帧不相近,则可以更新它们。
另外,如果返回的框架超出框架范围,则可以将框架画得更大一些并更新它们。

关于ios - CoreImage人脸检测每帧发生一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34101195/

10-09 00:56