Jak być może wiesz, wiele rzeczy zmieniło się w OpenCV 3 (w porównaniu do openCV2 lub starej pierwszej wersji).Szkolenie Opencv 3 SVM
W dawnych czasach, trenować jeden SVM użyłby:
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);
W trzeciej wersji interfejsu API, nie ma CvSVMParams
ani CvSVM
. Zaskakująco, jest a documentation page about SVM, ale mówi wszystko, ale nie jak naprawdę go używać (przynajmniej nie mogę tego zrozumieć). Co więcej, wygląda na to, że nikt w Internecie nie używa SVM z OpenCV 3.0.
Obecnie tylko udało mi się uzyskać następujące:
ml::SVM.Params params;
params.svmType = ml::SVM::C_SVC;
params.kernelType = ml::SVM::POLY;
params.gamma = 3;
Czy możesz podać mi informacje, w jaki sposób przepisać rzeczywiste szkolenia OpenCV 3?
Działa jak czar, dzięki za szybką reakcję! Czy możesz mi powiedzieć, jaki jest wynik reprezentowany w res cv :: Mat? Czy zawiera on te same wartości, które były na etykietach cv :: Mat? –
res.at (0) będzie zawierał identyfikator. "coś" będzie tutaj zmiennoprzecinkowe lub int, w zależności od rodzaju etykiet. –
berak
Informacja ta: "Zapytanie o matę, // wejście, 1 kanał, 1 wiersz (zastosuj przekształcenie (1,1), jeśli nie jest to konieczne)" bardzo zmieniło sukces mojej implementacji . Dziękuję @berak – Koray