训练:
def main():
(train, train_labels), (test, test_labels) = XX_load_data()
train = np.array(train / 255., dtype=np.float32)
test = np.array(test / 255., dtype=np.float32)
knn = cv2.ml.KNearest_create()
print(train.shape, train_labels.shape)
print(test.shape, test_labels.shape)
knn.train(train, cv2.ml.ROW_SAMPLE, train_labels)
# knn.save("XXX")
其中 XX_load_data 为自己定义的导入 数据 公式
预测:
knn = cv2.ml.KNearest_load(r"XXX")
(train, train_labels), (test, test_labels) = Cap_load_data()
print(test.shape, test_labels.shape)
test = np.array(test / 255., dtype=np.float32)
train = np.array(train / 255., dtype=np.float32)
# src = test[0].reshape(0, 1)
# print(test[0])
ret, result, neighbours, dist = knn.findNearest(test, k=3)
最重要的就是这个模型加载了:
knn = cv2.ml.KNearest_load(r"E:\AOItest\AOIpyOtherMethods

这篇博客介绍了如何使用KNN模型进行训练和加载。在训练过程中,数据通过自定义的XX_load_data函数导入。预测阶段,重点在于模型加载,使用cv2.ml.KNearest_load读取保存的模型文件。遇到的问题是模型加载时报错,提示要求测试样本为CV_32F类型且列数与样本列数相同。此外,强调预测输入的test数据应为二维。
最低0.47元/天 解锁文章
1161

被折叠的 条评论
为什么被折叠?



