如何格式化列表以将其作为输入提供给支持向量机训练()在opencv3.0中

2024-05-19 13:07:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用opencv3.0,我的IDE是pycharm

我有两个列表一个是训练集,一个是训练标签。 训练集是一个列表,如

[array([119, 122,  91, ..., 185,  80, 255], dtype=uint8), array([112, 106,   120, ..., 121, 138, 255], dtype=uint8), ....... ]

training_labels是培训中每个列表的标签列表_设置训练标签看起来像

^{pr2}$

但当我把这个传给支持向量机训练()

svm = cv2.ml.SVM_create()

trainingdata =  map(int, training_set)
responses = map(int, training_labels)

svm.train(trainingdata,responses,params=svm_params)
svm.save('svm_data.dat')

我得到了这个错误

trainingdata =  map(int, training_set)
TypeError: only length-1 arrays can be converted to Python scalars

如何在将数据作为输入输入之前正确格式化数据支持向量机训练()


Tags: map列表labelstraining标签paramsresponsesarray
1条回答
网友
1楼 · 发布于 2024-05-19 13:07:48

最后我得到了答案。我切换到opencv2.4。我修改了我的代码为

trainData=np.float32(training_set)
responses=np.float32(training_labels)
svm = cv2.SVM()
svm.train(trainData,responses, params=svm_params)
svm.save('svm_data.dat')

现在一切都是完美的。在

相关问题 更多 >