调整了数据的顺序,按照图片名称大小排序

This commit is contained in:
FEIJINTI 2023-03-28 13:20:01 +08:00
parent a72c954b0a
commit e4351408b4

View File

@ -16,7 +16,6 @@ from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.tree import DecisionTreeClassifier from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier from sklearn.neighbors import KNeighborsClassifier
from scipy.stats import binom from scipy.stats import binom
@ -152,8 +151,6 @@ class WoodClass(object):
# 显示结果报告 # 显示结果报告
return int(pre_score * 100) return int(pre_score * 100)
def calculate_p1(self, x, remove_background=False): def calculate_p1(self, x, remove_background=False):
@ -308,7 +305,6 @@ class WoodClass(object):
# x = x[np.argsort(x[:, 0])] # x = x[np.argsort(x[:, 0])]
# x = x[-self.k:, :] # x = x[-self.k:, :]
hist, bins = np.histogram(x[:, 0], bins=num_bins) hist, bins = np.histogram(x[:, 0], bins=num_bins)
# hist = hist[1:] # hist = hist[1:]
# bins = bins[1:] # bins = bins[1:]
@ -318,7 +314,6 @@ class WoodClass(object):
x = x[((x[:, 0] > bins[hist_number]) & (x[:, 0] < bins[hist_number + 1])) | ( x = x[((x[:, 0] > bins[hist_number]) & (x[:, 0] < bins[hist_number + 1])) | (
(x[:, 0] > bins[second_hist_number]) & (x[:, 0] < bins[second_hist_number + 1])), :] (x[:, 0] > bins[second_hist_number]) & (x[:, 0] < bins[second_hist_number + 1])), :]
# hist, bins = np.histogram(x[:, 0], bins=9) # hist, bins = np.histogram(x[:, 0], bins=9)
# sorted_indices = np.argsort(hist) # sorted_indices = np.argsort(hist)
# hist_number = sorted_indices[-1] # hist_number = sorted_indices[-1]
@ -326,8 +321,6 @@ class WoodClass(object):
# x = x[((x[:, 0] > bins[hist_number]) & (x[:, 0] < bins[hist_number + 1])) | ( # x = x[((x[:, 0] > bins[hist_number]) & (x[:, 0] < bins[hist_number + 1])) | (
# (x[:, 0] > bins[second_hist_number]) & (x[:, 0] < bins[second_hist_number + 1])), :] # (x[:, 0] > bins[second_hist_number]) & (x[:, 0] < bins[second_hist_number + 1])), :]
if debug_mode: if debug_mode:
# self.log.log(x) # self.log.log(x)
self.log.log(x.shape) self.log.log(x.shape)
@ -531,7 +524,6 @@ class WoodClass(object):
for i in range(labels.shape[0]): for i in range(labels.shape[0]):
labels[i] = sorted_cluster_indices[labels[i]] labels[i] = sorted_cluster_indices[labels[i]]
if plot_2d: if plot_2d:
plt.figure() plt.figure()
plt.scatter(x_data[:, 0], x_data[:, 1], c=labels) plt.scatter(x_data[:, 0], x_data[:, 1], c=labels)
@ -539,7 +531,21 @@ class WoodClass(object):
return x_data, y_data, labels, img_names return x_data, y_data, labels, img_names
def data_adjustments(self, x_data, y_data, labels, img_names):
'''
数据调整
:param x_data: 提取的特征
:param y_data: 初始的类别
:param labels: 聚类后的类别
:param img_names: 文件名
:return: 调整后的数据
'''
sorted_idx = sorted(range(len(img_names)), key=lambda x: int(img_names[x][3:-4]))
x_data = x_data[sorted_idx, [0, 1, 2]]
y_data = y_data[sorted_idx]
labels = labels[sorted_idx]
img_names = img_names[sorted_idx]
return x_data, y_data, labels, img_names
if __name__ == '__main__': if __name__ == '__main__':
@ -557,7 +563,6 @@ if __name__ == '__main__':
wood.get_kmeans_data(data_path, plot_2d=True) wood.get_kmeans_data(data_path, plot_2d=True)
# 测试单张图片的预测predict_mode=True表示导入本地的model, False为现场训练的 # 测试单张图片的预测predict_mode=True表示导入本地的model, False为现场训练的
pic = cv2.imread(r"data/318/dark/rgb89.png") pic = cv2.imread(r"data/318/dark/rgb89.png")
start_time = time.time() start_time = time.time()