2017-08-26 36 views
-3

如何將圖像轉換爲數據集或numpy的陣列,並預測由fiting它CLF如何轉換圖像數據集處理機器學習

import PIL as pillow 
from PIL import Image 
import numpy as np 
import matplotlib.pyplot as plt 
from sklearn import svm 

infilename=input() 
im=Image.open(infilename) 
imarr=np.array(im) 
flatim=imarr.flatten('F') 

clf=svm.SVC(gamma=0.0001,C=100) 
x,y=im.size 

#how to fit the numpy array to clf 
clf.fit(flatim[:-1],flatim[:-1]) 
print("prediction:",clf.predict(flatim[-1])) 
plt.imshow(flatim,camp=plt.cm.gray_r,interpolation='nearest') 
plt.show() 

任何人,請和感謝!

+0

你能詳細解釋你想解決的確切問題嗎? –

回答

0

除了這樣做的樂趣之外,在單個圖像上沒有其他原因使用SVM。這是我做的修復。 1)使用.convert(「L」)將圖像轉換爲二維數組灰度。 2)創建一個虛擬目標變量y作爲隨機一維數組。 3)固定類型的錯誤再次顯示圖像(plt.imshow)CMAP(而不是營)和IM(代替flatim)

import PIL as pillow 
from PIL import Image 
import numpy as np 
import matplotlib.pyplot as plt 
from sklearn import svm 

im=Image.open("sample.jpg").convert("L") 
imarr=np.array(im) 
flatim=imarr.flatten('F') 

clf=svm.SVC() 
#X,y=im.size 
X = imarr 
y = np.random.randint(2, size=imarr.shape[0]) 
clf.fit(X, y) 

#how to fit the numpy array to clf 
#clf.fit(flatim[:-1],flatim[:-1]) 
# I HAVE NO IDEA WHAT I"M DOING HERE! 
print("prediction:", clf.predict(X[-2:-1])) 
plt.imshow(im,cmap=plt.cm.gray_r,interpolation='nearest') 
plt.show() 

我看到在一個很好的例子scikit學習使用SVM的website。我想這就是你想要複製的東西。是不是?