1

伙计们,我正在制作一个安卓应用程序,在该应用程序中,我必须将面部与头发和周围环境分开。我做了一些研究。使用圆形裁剪不会那么有效,因为它不会是从图片中有效的面对,因为我会丢失一些细节。我希望我能在android中完成这个吗?是否已经为此目的制作了任何源代码?或任何提供此功能的开源库?我在想如果我需要准确地完成它,我可能必须通过图像分割来做到这一点?即使那样我也不确定android如何处理图像分割。这不会是一个非常密集的计算吗?如果你们讨论他们权衡的可能性,我将不胜感激。我想做的就是从图片中提取人脸,这样我就可以玩它了!

4

1 回答 1

0

现有的库可以为您处理这类事情,即 openCV(请参阅参考资料)。

简而言之,有几种不同的方法可以进行人脸检测。这实际上取决于您要达到的目标。我过去使用主成分分析(即:特征向量分解)来找到人脸的中心,以及它的对齐方式(即:面对相机时人是向左还是向右倾斜),因此可以提取人脸并沿 xy 平面归一化。这种方法被认为是相对有效的,并且需要O(n^2)时间来计算(n图像中的像素数在哪里),所以不要指望这些方法在 CPU 上很容易。

如果要确定眼睛的位置,确定人是否在微笑等,可以使用其他更复杂的方法。

下面是一个完整的工作示例,说明您使用相当常见的图像处理库在C. 祝你好运!


编辑: 有关使用 javaCV 的 Java 示例,请参阅参考文献 [2]。

参考:


  1. http://opencv.willowgarage.com/wiki/FaceDetection
  2. http://tkgospodinov.com/computer-vision-face-detection-in-java-with-opencv-using-javacv/
于 2013-08-12T16:35:39.350 回答