欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)LBP方法提取圖像紋理特征實現(xiàn)分類的步驟

 更新時間:2019年07月11日 10:18:51   作者:selous  
這篇文章主要介紹了python實現(xiàn)LBP方法提取圖像紋理特征實現(xiàn)分類的步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

題目描述

這篇博文是數(shù)字圖像處理的大作業(yè).

題目描述:給定40張不同風(fēng)格的紋理圖片,大小為512*512,要求將每張圖片分為大小相同的9塊,利用其中的5塊作為訓(xùn)練集,剩余的4塊作為測試集,構(gòu)建適當(dāng)?shù)哪P蛯崿F(xiàn)圖片的分類.

圖片如下圖所示:

分析:由于數(shù)據(jù)集太小,所以神經(jīng)網(wǎng)絡(luò)模型并不適合此類的圖像處理.就需要尋找方法提取圖像的紋理信息.本文采用LBP的方法提取圖像的紋理信息,然后轉(zhuǎn)化成直方圖作為圖像的特征,然后使用多分類的方法進行分類.

環(huán)境

python2.7,jupyter notebook,anaconda

數(shù)據(jù)集的地址

實現(xiàn)

讀取數(shù)據(jù)

Numpy包數(shù)組操作API格式化數(shù)據(jù)

def loadPicture():
  train_index = 0;
  test_index = 0;
  train_data = np.zeros( (200,171,171) );
  test_data = np.zeros( (160,171,171) );
  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( (513,513) );
    data[0:image.shape[0],0:image.shape[1]] = image;
    #切割后的圖像位于數(shù)據(jù)的位置
    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;
        else:
          test_data[test_index,:,:] = data[171*row:171*(row+1),171*col:171*(col+1)];
          test_label[test_index] = i;
          test_index+=1;
        index+=1;
  return train_data,test_data,train_label,test_label;

特征提取

LBP特征提取方法

radius = 1;
n_point = radius * 8;

def texture_detect():
  train_hist = np.zeros( (200,256) );
  test_hist = np.zeros( (160,256) );
  for i in np.arange(200):
    #使用LBP方法提取圖像的紋理特征.
    lbp=skft.local_binary_pattern(train_data[i],n_point,radius,'default');
    #統(tǒng)計圖像的直方圖
    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_point,radius,'default');
    #統(tǒng)計圖像的直方圖
    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_hist,test_hist;

訓(xùn)練分類器

SVM支持向量機分類.

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import numpy as np
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVR
from skimage import feature as skft
train_data,test_data,train_label,test_label= loadPicture();
train_hist,test_hist = texture_detect();
svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1);
OneVsRestClassifier(svr_rbf,-1).fit(train_hist, train_label).score(test_hist,test_label)

實驗測試集結(jié)果的正確率為:90.6%

第一次使用python的numpy包,對其中的api是真的不熟悉,代碼還可以優(yōu)化.其中和matlab里的矩陣操作也有不少不同,但是關(guān)于機器學(xué)習(xí)的scikitlearn包確實很好用.

總結(jié):結(jié)果的正確率不是很高,所以還是可以在分類器上優(yōu)化,或者尋找更好的特征提取的方式.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 中random 庫的詳細使用

    Python 中random 庫的詳細使用

    random庫是使用隨機數(shù)的Python標(biāo)準(zhǔn)庫,python中用于生成偽隨機數(shù)的函數(shù)庫是random,今天通過本文給大家分享Python 中random 庫的詳細使用,感興趣的朋友一起看看吧
    2021-06-06
  • Python 冒泡,選擇,插入排序使用實例

    Python 冒泡,選擇,插入排序使用實例

    這里簡單介紹了下Python中冒泡,選擇,插入排序的使用方法,推薦給需要的小伙伴們參考下。
    2015-02-02
  • selenium + python 獲取table數(shù)據(jù)的示例講解

    selenium + python 獲取table數(shù)據(jù)的示例講解

    今天小編就為大家分享一篇selenium + python 獲取table數(shù)據(jù)的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python利用beautifulSoup實現(xiàn)爬蟲

    python利用beautifulSoup實現(xiàn)爬蟲

    這篇文章主要介紹了python利用beautifulSoup實現(xiàn)爬蟲,需要的朋友可以參考下
    2014-09-09
  • Python類的用法實例淺析

    Python類的用法實例淺析

    這篇文章主要介紹了Python類的用法,以實例形式簡單分析了Python中類的定義、構(gòu)造函數(shù)及使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python數(shù)據(jù)存儲之 h5py詳解

    Python數(shù)據(jù)存儲之 h5py詳解

    今天小編就為大家分享一篇Python數(shù)據(jù)存儲之 h5py詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • keras中epoch,batch,loss,val_loss用法說明

    keras中epoch,batch,loss,val_loss用法說明

    這篇文章主要介紹了keras中epoch,batch,loss,val_loss用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 教你安裝python Django(圖文)

    教你安裝python Django(圖文)

    web開發(fā)語言越來越多,本文是安裝python Django,看完之后就可以使用PYTHON做開發(fā)了。
    2013-11-11
  • python文件操作之目錄遍歷實例分析

    python文件操作之目錄遍歷實例分析

    這篇文章主要介紹了python文件操作之目錄遍歷的方法,以實例形式較為詳細的分析了目錄遍歷所需要用到的相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python實現(xiàn)GUI學(xué)生管理系統(tǒng)的示例代碼

    Python實現(xiàn)GUI學(xué)生管理系統(tǒng)的示例代碼

    這篇文章主要為大家介紹了如何留Python語言實現(xiàn)簡易的GUI學(xué)生管理系統(tǒng),文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考下
    2022-06-06

最新評論