2017-08-26 7 views
-3

を学習プロセスのマシンにデータセットに画像を変換する方法、それはfitingによってデータセットまたはnumpyの配列に画像を変換すると予測する方法

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() 

誰でもしてくださいと感謝をCLFします!

+0

詳しくは、解決したい問題を詳しく説明できますか? –

答えて

0

1つの画像にSVMを使用する理由は他にありません。ここに私がした修正があります。 1).convert( "L")を使用して、画像を2D配列のグレースケールとして変換します。 2)は、ランダム化された1D配列としてダミーのターゲット変数yを作成しました。 3)私はSVMを使用してのscikit-学ぶwebsiteに良い例を参照してください代わりにflatimの種類の画像を再度表示するエラーの代わりにキャンプの(plt.imshow)CMAP()およびIM()

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() 

を修正。私はこれがあなたがコピーしようとしているものだと思います。そうじゃない?

関連する問題