Как вы знаете, многое изменилось в OpenCV 3 (в сравнении с openCV2 или старой первой версией).Opencv 3 Обучение SVM
В старые времена, обучать SVM можно было бы использовать:
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::POLY;
params.gamma = 3;
CvSVM svm;
svm.train(training_mat, labels, Mat(), Mat(), params);
В третьей версии API, нет CvSVMParams
ни CvSVM
. Удивительно, но есть a documentation page about SVM, но он рассказывает все, но не как его использовать (по крайней мере, я не могу разобраться). Кроме того, похоже, что никто в Интернете не использует SVM из 3.0 OpenCV.
В настоящее время я только успел получить следующее:
ml::SVM.Params params;
params.svmType = ml::SVM::C_SVC;
params.kernelType = ml::SVM::POLY;
params.gamma = 3;
Можете ли вы предоставить мне информацию, как переписать фактическое обучение OpenCV 3?
Работает как очарование, спасибо за очень быстрый ответ! Не могли бы вы рассказать мне, как результат представлен в res cv :: Mat? У него есть те же значения, что и в метках cv :: Mat? –
res.at (0) будет содержать идентификатор. «something» будет float или int здесь, в зависимости от типа меток. –
berak
Эта информация: «Mat query; // input, 1channel, 1 row (apply reshape (1,1) if nessecary)» сильно изменило успех моей реализации , Спасибо @berak – Koray