Example #1
0
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
Example #2
0
                    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)
Example #3
0
    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))