SVM 알고리즘 타입과 커널 함수 종류를 설정한 후에는 각각의 타입과 커널 함수 정의에 필요한 파라미터를 설정해야 합니다. SVM 클래스에서 설정할 수 있는 파라미터는 C, Nu, P, Degree, Gamma, Coef0 등이 있으며, 이들 파라미터는 차례대로 1, 0, 0, 0, 1, 0으로 초기화됩니다. 각각의 파라미터는 파라미터 이름에 해당하는 setXXX()와 getXXX() 함수를 이용하여 값을 설정하거나 읽어 올 수 있습니다. 예를 들어 SVM::Types::C_SVC 타입을 사용하고 SVM::KernelTypes::RBF 커널을 사용할 경우, SVM::setC() 함수와 SVM::setGamma() 함수를 사용하여 적절한 C와 Gamma 파라미터 값을 설정해야 합니다.
SVM 객체를 생성하고 타입과 커널 함수 선택, 그리고 파라미터를 설정한 후에는 StatModel::train() 함수를 이용하여 학습시킬 수 있습니다. 그러나 SVM에서 사용하는 파라미터를 적절하게 설정하지 않으면 학습이 제대로 되지 않는 경우가 발생합니다. 사실 대부분의 훈련 데이터는 다차원 공간에서 다양한 분포와 형태를 갖기 때문에 SVM 파라미터 값을 어떻게 설정해야 학습이 잘 될 것인지를 직관적으로 알기 어렵습니다. 그래서 OpenCV의 SVM 클래스는 각각의 파라미터에 대해 설정 가능한 값을 적용해 보고, 그중 가장 성능이 좋은 파라미터를 자동으로 찾아 학습하는 SVM::trainAuto() 함수를 제공합니다. SVM::trainAuto() 함수 원형은 다음과 같습니다.