資源簡介
題目是將圖片庫中的紋理圖片裁剪成九份,其中五份做訓練集,四份做測試集,先提取圖片LBP特征 ,最后用svm支持向量機進行學習,在預測測試集里的圖片是哪一類紋理。
正常情況下是需要調參的,即調整SVM的參數,但圖省事只整了個循環,正常應該手動調參的。

代碼片段和文件信息
import?matplotlib.image?as?mpimg
import?matplotlib.pyplot?as?plt
import?numpy?as?np
from?sklearn.multiclass?import?OneVsRestClassifier
from?sklearn.svm?import?SVC
from?skimage?import?feature?as?skft
from?sklearn.metrics?import?classification_report
def?loadPicture():
????train_index?=?0
????test_index?=?0
????train_data?=?np.zeros(?(200171171)?)
????test_data?=?np.zeros(?(160171171)?)
????train_label?=?np.zeros(?(200)?)
????test_label?=?np.zeros(?(160)?)
????for?i?in?np.arange(40):
????????image?=?mpimg.imread(‘picture/‘+str(i)+‘.tiff‘)
????????data?=?np.zeros(?(513513)?)
????????data[0:image.shape[0]0:image.shape[1]]?=?image
????????#切割后的圖像位于數據的位置
????????index?=?0
????????#將圖片分割成九塊
????????for?row?in?np.arange(3):
????????????for?col?in?np.arange(3):
????????????????if?index<5:
????????????????????train_data[train_index::]?=?data[171*row:171*(row+1)171*col:171*(col+1)]
????????????????????train_label[train_index]?=?i
????????????????????train_index+=1
????????????????????#mpimg.imread(‘picture/‘+str(i)+‘.tiff‘)
????????????????????arr=‘picture_train/‘+str(i*9+index)+‘.tiff‘
????????????????????mpimg.imsave(fname=arrarr=data[171*row:171*(row+1)171*col:171*(col+1)])
????????????????else:
????????????????????test_data[test_index::]?=?data[171*row:171*(row+1)171*col:171*(col+1)]
????????????????????test_label[test_index]?=?i
????????????????????test_index+=1
????????????????????arr=‘picture_test/‘+str(i*9+index)+‘.tiff‘
????????????????????mpimg.imsave(fname=arrarr=data[171*row:171*(row+1)171*col:171*(col+1)])
????????????????index+=1
????return?train_datatest_datatrain_labeltest_label
radius?=?1
n_point?=?radius?*?8?
def?texture_detect():
????train_hist?=?np.zeros(?(200256)?)?
????test_hist?=?np.zeros(?(160256)?)?
????for?i?in?np.arange(200):
????????#使用LBP方法提取圖像的紋理特征.
????????lbp=skft.local_binary_pattern(train_data[i]n_pointradius‘default‘)?
????????#統計圖像的直方圖
????????max_bins?=?int(lbp.max()?+?1)?
????????#hist?size:256
????????train_hist[i]?_?=?np.histogram(lbp?normed=True?bins=max_bins?range=(0?max_bins))?
????for?i?in?np.arange(160):
????????lbp?=?skft.local_binary_pattern(test_data[i]n_pointradius‘default‘)?
????????#統計圖像的直方圖
????????max_bins?=?int(lbp.max()?+?1)?
????????#hist?size:256
????????test_hist[i]?_?=?np.histogram(lbp?normed=True?bins=max_bins?range=(0?max_bins))?
????return?train_histtest_hist?
train_datatest_datatrain_labeltest_label=?loadPicture()?
train_histtest_hist?=?texture_detect()?
result=[]
maxid=0
max=0
id=0
kenellist=[‘linear‘?‘poly‘?‘rbf‘?‘sigmoid‘]
for?kenel?in?kenellist?:
????for?c?in?range(12001100):?
????????gama=0.1
????????while(gama<=1):
????????????clf?=?SVC(kernel=kenel?C=c?gamma=gama)?
????????????clf.fit(train_histtrain_label)
????????????linshi=clf.score(test_histtest_label)
????????????result.append([kenelcgamalinshi])
????????????print(idresult[id])
????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-06-27?18:33??test\
?????目錄???????????0??2019-06-27?18:33??test\picture\
?????文件??????264554??2005-12-07?20:48??test\picture\0.tiff
?????文件??????264126??2005-12-07?20:39??test\picture\1.tiff
?????文件??????263466??2005-12-07?20:42??test\picture\10.tiff
?????文件??????264724??2005-12-07?20:42??test\picture\11.tiff
?????文件??????262548??2005-12-07?20:42??test\picture\12.tiff
?????文件??????264694??2005-12-07?20:43??test\picture\13.tiff
?????文件??????262128??2005-12-07?20:43??test\picture\14.tiff
?????文件??????264724??2005-12-07?20:43??test\picture\15.tiff
?????文件??????264676??2005-12-07?20:43??test\picture\16.tiff
?????文件??????264666??2005-12-07?20:43??test\picture\17.tiff
?????文件??????264654??2005-12-07?20:44??test\picture\18.tiff
?????文件??????264714??2005-12-07?20:44??test\picture\19.tiff
?????文件??????264506??2005-12-07?20:39??test\picture\2.tiff
?????文件??????264646??2005-12-07?20:44??test\picture\20.tiff
?????文件??????262166??2005-12-07?20:44??test\picture\21.tiff
?????文件??????261812??2005-12-07?20:44??test\picture\22.tiff
?????文件??????264136??2005-12-07?20:45??test\picture\23.tiff
?????文件??????264694??2005-12-07?20:45??test\picture\24.tiff
?????文件??????264554??2005-12-07?20:45??test\picture\25.tiff
?????文件??????264514??2005-12-07?20:45??test\picture\26.tiff
?????文件??????264154??2005-12-07?20:45??test\picture\27.tiff
?????文件??????264674??2005-12-07?20:46??test\picture\28.tiff
?????文件??????264554??2005-12-07?20:46??test\picture\29.tiff
?????文件??????264742??2005-12-07?20:40??test\picture\3.tiff
?????文件??????264734??2005-12-07?20:46??test\picture\30.tiff
?????文件??????264752??2005-12-07?20:46??test\picture\31.tiff
?????文件??????263156??2005-12-07?20:46??test\picture\32.tiff
?????文件??????264730??2005-12-07?20:47??test\picture\33.tiff
?????文件??????263698??2005-12-07?20:47??test\picture\34.tiff
............此處省略12個文件信息
評論
共有 條評論