1.读取600张掌纹图片
import cv2
import pandas as pd
data=[] #掌纹数据
for i in range(100):
person_palm=[] #一个人的掌纹
for j in range(1,7):
path='./palmbases/P_'+str(i)+'_'+str(j)+'.bmp'
palm_imag=cv2.imread(path)
person_palm.append(palm_imag)
data.append(person_palm)
imgs=[]
#将三维照片转化为二维
data2=[]
target=[] #标签(1-100代表100个人)
for i in range(100):
for j in range(6):
target.append(i+1) #标签
b=[]
for m in range(128): #图片大小为128*128
a=[]
for n in range(128):
a.append(data[i][j][m][n][1]) #data 中获取第 i 个人的第 j 张图像的第 m 行、第 n 列的元素的索引为 1 的值
b.append(a)
data2.append(b)
def to_series(data):#将掌纹数据变为一维的series
data_se=[]
for palm in data:
series=[]
for i in range(128):
for j in range(128):
series.append(palm[i][j])
data_se.append(series)
return pd.DataFrame(data_se)
data=to_series(data2)
2.KNN学习方法
import cv2 #读取照片
import numpy as np
from PIL import Image
import pandas as pd #数据处理
import numpy.matlib
from sklearn.decomposition import PCA #降维
from sklearn.model_selection import t