我在ubuntu 12.04上使用Open CV 2.4.6。 我通过EigenFaces在cpp上进行了面部识别。
我尝试使用opencv python,这完全一样。但是给我零矩阵作为输出预测。即使我的测试图像与训练图像相同,输出也为零。
这是我的代码:
import os
import sys
import cv2
import numpy as np
if __name__=='__main__':
print "Face matching"
if len(sys.argv) < 3:
print "USAGE: matchfaces.py img1 img2"
sys.exit()
X= []
x1 = []
print sys.argv[2]
im1 = cv2.imread(sys.argv[1],cv2.IMREAD_GRAYSCALE)
im2 = cv2.imread(sys.argv[2],cv2.IMREAD_GRAYSCALE)
model = cv2.createEigenFaceRecognizer()
X.append(np.asarray(im1, dtype=np.uint8))
X.append(np.asarray(im1, dtype=np.uint8))
x1.append(0)
x1.append(0)
xlabels = np.asarray(x1, dtype=np.int32)
model.train(X,xlabels)
print model
[p_label, p_confidence] = model.predict(np.asarray(im2, dtype=np.uint8))
print "Done"
print p_label, p_confidence
print model.getMat("eigenvalues")
任何人都可以通过python让我知道opencv上的任何好的教程或博客。
谢谢, 赛亚