首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用opencv python获得最佳特征脸

如何使用opencv python获得最佳特征脸
EN

Stack Overflow用户
提问于 2020-02-28 17:07:15
回答 1查看 728关注 0票数 0

我使用这个链接:https://www.learnopencv.com/eigenface-using-opencv-c-python/来获取图像和特征脸的平均脸部。

代码语言:javascript
复制
# Compute the eigenvectors from the stack of images created
  print("Calculating PCA ", end="...")
  mean, eigenVectors = cv2.PCACompute(data, mean=None, maxComponents=NUM_EIGEN_FACES)
  print ("DONE")
  averageFace = mean.reshape(sz)
  eigenFaces = [];
  for eigenVector in eigenVectors:
    eigenFace = eigenVector.reshape(sz)
    eigenFaces.append(eigenFace)

但我不知道如何获得像这样的顶级特征脸图片image example top eigenfaces

源代码github

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 18:51:59

特征面在eigenVector中从上到下排序。(根据特征值,从大到小)。因此,只需输出前N个特征面。通常,为了显示,我们需要将均值脸添加到特征脸中,并显示结果图像。

真正的特征面是人脸图像空间中的ND轴,平均面是原点,特征值与输入面沿某一轴设置的离散度(特征面)成正比。第一个(在你的例子中是“最好的”)是方差最大的轴。

因此,如果在脸部空间中思考,脸部是特征空间中的一个点,你可以将任何脸部放大为常见点。

face(C1,C2,..,CN)=mean_face+ face

你可以将任何人脸投影到特征空间,并得到它的C1,C2,...,CN坐标。

使用这些坐标,你可以找到脸部之间的“距离”,它通常用于比较脸部。

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

https://stackoverflow.com/questions/60448383

复制
相关文章

相似问题

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