def predict(dirName, testFileName): """ :param dirName: 包含训练数据集的文件夹路径 :param testFileName: 测试图像文件名 :return: 预测结果 """ # testImg=cv2.imread(testFileName) # cv2.imshow("testImg",testImg) dataMat, label = createImageSet.createImageMat(dirName, 16, 11, 176, 100 * 100) print('加载数据集矩阵', dataMat) print('加载图片标签', label) ans = compare(dataMat, testFileName, label) return ans
cv2.destroyAllWindows() break if isRight2 >= 4: print("欢迎你,饶丝雨!") # break camera.release() cv2.destroyAllWindows() break else: if isRight < 4: isRight = 0 testTimes += 1 print("测试失败") if testTimes >= 5: # break camera.release() j = 0 if isRight2 < 4: isRight2 = 0 testTimes += 1 print("测试失败2") if testTimes >= 5: # break camera.release() j = 0 if __name__ == '__main__': dataMat, label = createImageSet.createImageMat('Yale', 17, 11, 11 * 17, 100 * 100) detect(dataMat, label)
disc_set,x,y=LDA.pca(dataMat,PCA_dim) Total=classNum*classInNum redVects, Train_LDA = LDA.lda(dataMat, label,PCA_dim, classNum, classInNum, Total) # LDA投影空间,最终的训练集 for classnum in range(1, classNum + 1): print('第',classnum,'类') Count += compare(disc_set, Train_LDA, redVects, label, testNum,classnum, 7) print('Final correctCount:', Count/classNum) if __name__ == '__main__': PCA_dim=40 #####从22开始识别率提升为1.0 testNum=10 classNum=17 classInNum=11 Train_Total=classNum*classInNum dataMat, label = createImageSet.createImageMat('Yale', classNum, classInNum, Train_Total, 100 * 100) getResult(dataMat, label, PCA_dim, testNum , classNum ,classInNum) # disc_set, disc_value = LDA.pca(dataMat, 50) # redVects, Train_LDA = LDA.lda(dataMat, 50, 15, 11, 165) # LDA投影空间,最终的训练集 # testImgSet = './Yale/1/s1.bmp' # # testImgSet = createImageSet.createTestMat('Yale', testInClass, testNum, testInClass, 100 * 100) # testImgSet = ImageSet.HistogramEqualization(testImgSet) # testImgSet = np.reshape(testImgSet, (-1, 1)) # testImgSet = disc_set.T.dot(testImgSet) # testImgSet = redVects.T.dot(testImgSet) # disList = [] # testVec = np.reshape(testImgSet, (1, -1)) # print('testVec', testVec.shape) # # for sample in Train_LDA.T: # disList.append(np.linalg.norm(testVec - sample))