Come posso recuperare texture usando GLCM e classificare usando Classificatore SVM?


12

Sono su un progetto di segmentazione e classificazione del tumore al fegato. Ho usato Region Growing e FCM rispettivamente per la segmentazione del fegato e del tumore. Quindi, ho usato la matrice di ricorrenza del livello di grigio per l'estrazione della feature texture. Devo usare Support Vector Machine per la classificazione. Ma non so come normalizzare i vettori di funzionalità in modo da poterlo fornire come input per SVM. Qualcuno può dire come programmarlo in Matlab?

Al programma GLCM, ho fornito l'immagine segmentata del tumore come input. Avevo ragione? In tal caso, penso, quindi, anche il mio output sarà corretto.

La mia codifica glcm, per quanto ho provato,

I = imread('fzliver3.jpg');
GLCM = graycomatrix(I,'Offset',[2 0;0 2]);
stats = graycoprops(GLCM,'all')
t1= struct2array(stats)


I2 = imread('fzliver4.jpg');
GLCM2 = graycomatrix(I2,'Offset',[2 0;0 2]);
stats2 = graycoprops(GLCM2,'all')
t2= struct2array(stats2)

I3 = imread('fzliver5.jpg');
GLCM3 = graycomatrix(I3,'Offset',[2 0;0 2]);
stats3 = graycoprops(GLCM3,'all')
t3= struct2array(stats3)

t=[t1,t2,t3]
xmin = min(t); xmax = max(t);
scale = xmax-xmin;
tf=(x-xmin)/scale

È stata un'implementazione corretta? Inoltre, viene visualizzato un errore nell'ultima riga.

La mia uscita è:

stats = 

   Contrast: [0.0510 0.0503]
Correlation: [0.9513 0.9519]
     Energy: [0.8988 0.8988]
Homogeneity: [0.9930 0.9935]
t1 =

Columns 1 through 6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988
Columns 7 through 8

0.9930    0.9935
stats2 = 

   Contrast: [0.0345 0.0339]
Correlation: [0.8223 0.8255]
     Energy: [0.9616 0.9617]
Homogeneity: [0.9957 0.9957]
t2 =

Columns 1 through 6

0.0345    0.0339    0.8223    0.8255    0.9616    0.9617
Columns 7 through 8

0.9957    0.9957
stats3 = 

   Contrast: [0.0230 0.0246]
Correlation: [0.7450 0.7270]
     Energy: [0.9815 0.9813]
Homogeneity: [0.9971 0.9970]
t3 =

Columns 1 through 6

0.0230    0.0246    0.7450    0.7270    0.9815    0.9813
Columns 7 through 8

0.9971    0.9970

t =

Colonne da 1 a 6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988

Colonne da 7 a 12

0.9930    0.9935    0.0345    0.0339    0.8223    0.8255

Colonne da 13 a 18

0.9616    0.9617    0.9957    0.9957    0.0230    0.0246

Colonne da 19 a 24

0.7450    0.7270    0.9815    0.9813    0.9971    0.9970

??? Error using ==> minus
    Matrix dimensions must agree.

Le immagini di input sono:

fzliver1 fzliver2 fzliver3


Cosa hai usato per implementare l'algoritmo Fuzzy C-Means?
Spacey,

@Mohammad, non ti capisco signore. Se mi stai chiedendo del software, ho usato Matlab.
Gomathi,

Sì, me ne rendo conto, ma intendo che hai usato una libreria integrata per l'implementazione della segmentazione Fuzzy-C-Means, o hai scritto la tua o importata una libreria di terze parti? Lo chiedo perché sono anche interessato a implementare un algo di segmentazione e anche la mia piattaforma è MATLAB.
Spacey,

@Mohammad No signore, non ho installato alcuna libreria specifica per FCM. Ho usato FCM Thresheholding. Fare riferimento a Scambio di file centrale Matlab. Spero ti sia utile.
Gomathi,

buon metodo ma ho il software ENVI 4.0. Voglio che le immagini satellitari Landsat 7 dei processi valutino il volume dell'albero

Risposte:


8

Stai usando Matlab? In tal caso, avresti bisogno di Bioinformatics Toolbox, che include un classificatore SVM, oppure puoi scaricare libsvm, che ha involucri Matlab per addestramento e test.

Quindi avrai bisogno di alcuni dati etichettati. Stai classificando tumori del fegato al contrario di fegato sano? Quindi avresti bisogno di immagini di tumori al fegato e fegati sani, ognuno etichettato come tale.

Quindi è necessario calcolare alcune funzionalità. Che cosa sono, dipende dalla natura del problema. Le caratteristiche della trama sembrano un buon inizio. Prendi in considerazione l'utilizzo di matrici di ricorrenza o modelli binari locali.

Modifica: dalla versione R2014a è presente una funzione fitcsvm nella casella degli strumenti Statistiche e apprendimento automatico per l'addestramento di un classificatore binario SVM. C'è anche fitcecoc per la formazione di un SVM multi-classe.


Grazie. Ho scaricato libsvm. Ho anche calcolato le caratteristiche della trama usando matrici di ricorrenza di livello di grigio. Ma non so come dare input al programma svm. Si prega di fare riferimento a stackoverflow.com/questions/9751265/… Gentilmente guidami .
Gomathi,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.