import os
from numpy import *
import numpy as np
import cv2
import matplotlib.pyplot as plt
from pylab import mpl
import numpy.matlib
mpl.rcParams['font.sans-serif'] = ['SimHei']
def img2vector(image):
img=cv2.imread(image,0)
rows,cols=img.shape
imgVector = np.zeros((1,rows*cols))
imgVector = np.reshape(img,(1,rows*cols))
return imgVector
img2vector('1.pgm').shape
orlpath="C://Users//Hasee//Desktop//orl_faces"
def load_orl(k):
'''
对训练数据集进行数组初始化,用0填充,每张图片尺寸都定为112*92,
现在共有40个人,每个人都选择k张,则整个训练集大小为40*k,112*92
'''
train_face=np.zeros((40*k,112*92))
train_label=np.zeros(40*k)
test_face=np.zeros((40*(10-k),112*92))
test_label=np.zeros(40*(10-k))
sample=random.permutation(10)+1
for i in range(40):
people_num=i+1
for j in range(10):
image=orlpath+'/s'+str(people_num)+'/'+str(sample[j])+'.pgm'
img=img2vector(image)
if j<k:
train_face[i*k+j,:] = img
train_label[i*k+j] =people_num
else:
test_face[i*(10-