from PIL import Image defdenoise(img): """去除绿色干扰线""" pixdata = img.load() w, h = img.size for y in range(h): for x in range(w): r, g, b = pixdata[x, y] if r > 110and g < 130: pass else: img.putpixel((x, y), (255, 255, 255)) return img
import os from sklearn.metrics import accuracy_score from sklearn.naive_bayes import GaussianNB from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier
train_data = [] train_label = [] test_data = [] test_label = [] for r, d, f in os.walk('data_train'): for each in f: imgname = os.path.join(r, each) img = Image.open(imgname) data = np.array(binarizing(img, 200)) label = r.split('/')[-1] train_data.append(np.reshape(data, 30 * 30)) # 展开成1维数组 train_label.append(label)
for r, d, f in os.walk('data_test'): for each in f: imgname = os.path.join(r, each) img = Image.open(imgname) data = np.array(binarizing(img, 200)) label = r.split('/')[-1] test_data.append(np.reshape(data, 30 * 30)) test_label.append(label)