0
我想使用SVM將圖像分類爲紅色和綠色。對於培訓,我從訓練圖像中提取rgba。我也將列表轉換爲numpy數組。但是我得到Error while我給它的SVM training.My示例代碼在opencv中向SVM提供輸入時獲取錯誤
import cv2
import numpy
import numpy as np
from PIL import Image
import os
print "OpenCV version : {0}".format(cv2.__version__)
svm_params = dict(kernel_type = cv2.SVM_LINEAR,
svm_type = cv2.SVM_C_SVC,
C=2.67, gamma=5.383)
path1='c:\\colors\\red\\'
path2='c:\\colors\\green\\'
training_set = []
test_set=[]
training_labels=[]
rlist = os.listdir(path1)
glist= os.listdir(path2)
for file in rlist:
img = Image.open(path1 + file)
img200=img.resize((100,100)).convert('RGBA')
arr= np.array(img200)
print arr
training_set.append(arr)
training_labels.append(1)
for file in glist:
img = Image.open(path2 + file)
img200=img.resize((100,100)).convert('RGBA')
arr= np.array(img200)
training_set.append(arr)
training_labels.append(2)
###### SVM training ########################
trainData=np.float32(training_set)
responses=np.float32(training_labels)
svm = cv2.SVM()
svm.train(trainData,responses, params=svm_params)
svm.save('trycolor_svm_data.dat')
我得到錯誤的
cv2.error: ..\..\..\..\opencv\modules\ml\src\inner_functions.cpp:857: error: (-5) train data must be floating-point matrix in function cvCheckTrainData
我怎樣才能正確地給予輸入到SVM
Thanks.It工作 – Frido
@Frido如果它的工作接受答案 – Emmanu