基于openCV和Python的支持向量机

2024-10-03 06:26:12 发布

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

我正在尝试构建一个对不同对象进行分类的应用程序。我有一个训练文件夹,里面有一堆我想用来训练我的支持向量机的图像。 直到现在,我一直遵循这个(伟大的)答案: using OpenCV and SVM with images

下面是我的代码示例:

def getTrainingData():

address = "..//data//training"
labels = []
trainingData = []
for items in os.listdir(address):
    ## extracts labels
    name = address + "//" + items
    for it in os.listdir(name):
        path = name + "//" + it
        print path
        img = cv.imread(path, cv.CV_LOAD_IMAGE_GRAYSCALE)
        d = np.array(img, dtype = np.float32)
        q = d.flatten()
        trainingData.append(q)
        labels.append(items)
        ######DEBUG######

        #cv.namedWindow(path,cv.WINDOW_NORMAL)
        #cv.imshow(path,img)

return trainingData, labels


svm_params = dict( kernel_type = cv.SVM_LINEAR,
                    svm_type = cv.SVM_C_SVC,
                    C=2.67, gamma=3 )

training, labels = getTrainingData()

train = np.asarray(training)
svm = cv.SVM()
svm.train(train, labels, params=svm_params)
svm.save('svm_data.dat')

但是,当我尝试运行时,收到以下错误:

^{pr2}$

我做错什么了? 谢谢!在


Tags: pathnameimglabelsaddressnptrainingitems