資源簡介
knn 字符識別 python
代碼片段和文件信息
#?encoding:?utf-8
import?os
import?math
import?time
#單個圖像向量化?32x32?->?1x1024
def?Img2vector(filename):
????returnVect?=?[]
????fr?=?open(filename)
????for?i?in?range(32):
??????lineStr?=?fr.readline()
??????for?j?in?range(32):
????????returnVect.append(int(lineStr[j]))
????return?returnVect
#print?img2vector(‘C:\\Users\\fffupeng\\Desktop\\train_num\\0_0.txt‘)
#測試通過
#提取標簽
def?Splitfile(txtname):
????number?=?(txtname.split(‘.‘)[0]).split(‘_‘)[0]
????return?number
#print?Splitfile(‘0_0.txt‘)
#測試成功
#構建訓練集
def?Train():
????path_train?=?os.getcwd()+r‘\\‘+‘train_num‘
????list_txt?=?os.listdir(path_train)
????L_numL_vec?=?[][]
????for?txt?in?list_txt:
????????L_num.append(Splitfile(txt))
????????L_vec.append(Img2vector(path_train+r‘\\‘+txt))
????return?L_numL_vec
#測試數據向量化,也可以改成測試集,即多個測試數據
def?Test():
????path_test_file?=?os.getcwd()+r‘\\test_num\\9_0.txt‘#單個測試文件位置,數字0
????test_vec?=?Img2vector(path_test_file)#測試文件向量化
????return?test_vec
#計算兩個向量的距離
def?Distance(ab):
????sum?=?0
????for?i?in?range(len(a)):
????????
- 上一篇:EM算法Python實現
- 下一篇:baidu.py
評論
共有 條評論