我建立了两个python文件:
1.data.py (负责加载.mat文件,将它转化为,csv文件)
2.train and classify.py (训练并观察分类效果)
下面分别是两段代码(对前面的引用代码做了轻微改动)
1.data.py
import matplotlib.pyplot as plt
import numpy as np
from scipy.io import loadmat
import spectral
from sklearn import preprocessing
from PIL import Image as image
# # 获取mat格式的数据,loadmat输出的是dict,所以需要进行定位
input_image = loadmat('D:\Desktop\Machine Learing\code\KSC\data\KSC.mat')['KSC']
output_image = loadmat('D:\Desktop\Machine Learing\code\KSC\data\KSC_gt.mat')['KSC_gt']
# # input_image.shape#:(610, 340, 103)
# # output_image.shape#:(610, 340)
# # np.unique(output_image) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=uint8)
# 统计每类样本所含个数
dict_k = {
}
for i in range(output_image.shape[0]):
for j in range(output_image.shape[1]):
# if output_image[i][j] in [m for m in range(1,17)]:
if output_image[i][j] in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]:
if output_image[i][j] not in dict_k:
dict_k[output_image[i][j]] = 0
dict_k[output_image[i][j]] += 1
print(dict_k)
print(reduce(lambda x, y: x + y, dict_k.values(</