python利用opencv中svm创建一个简单分类 import cv2 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt rand1 = np.array([[155,48],[159,50],[164,53],[168,56],[172,60]]) rand2 = np.array([[152,53],[156,55],[160,56],[172,64],[176,65]]) label = np.array([[0],[0],[0],[0],[0],[1],[1],[1],[1],[1]]) data = np.vstack((rand1,rand2)) print(data) data = np.array(data,dtype='float32') print('--------------------') print(data) #有标签训练为监督学习 #训练 svm = cv2.ml.SVM_create() #属性设置 svm.setType(cv2.ml.SVM_C_SVC) #设置svm类型 svm.setKernel(cv2.ml.SVM_LINEAR) #设置svm内核,线性内核 svm.setC(0.01) #和svm内核有关的参数 result = svm.train(data,cv2.ml.ROW_SAMPLE,label) #进行训练,第一个数据,第二个类型,第三个标签 #预测 pt_data = np.vstack([[150,50],[162,57]]) pt_data = np.array(pt_data,dtype='float32') #数据转换 print('----------------------') print(pt_data) print('----------------------') (par1,par2) = svm.predict(pt_data) print(par1,par2)