Bagaimana cara mengambil tekstur menggunakan GLCM dan mengklasifikasikan menggunakan SVM Classifier?

12

Saya sedang dalam proyek segmentasi dan klasifikasi tumor hati. Saya masing-masing menggunakan Region Growing dan FCM untuk segmentasi hati dan tumor. Kemudian, saya menggunakan matriks Gray Level Co-kejadian untuk ekstraksi fitur tekstur. Saya harus menggunakan Support Vector Machine untuk Klasifikasi. Tapi saya tidak tahu bagaimana cara menormalkan vektor fitur sehingga saya bisa memberikannya sebagai input ke SVM. Adakah yang bisa mengatakan bagaimana cara memprogramnya di Matlab?

Untuk program GLCM, saya memberikan gambar tumor tersegmentasi sebagai input. Apakah saya benar? Jika demikian, saya pikir, maka, output saya juga akan benar.

Glcm coding saya, sejauh yang saya coba,

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

Apakah ini implementasi yang benar? Juga, saya mendapatkan kesalahan di baris terakhir.

Output saya adalah:

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 =

Kolom 1 hingga 6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988

Kolom 7 hingga 12

0.9930    0.9935    0.0345    0.0339    0.8223    0.8255

Kolom 13 hingga 18

0.9616    0.9617    0.9957    0.9957    0.0230    0.0246

Kolom 19 hingga 24

0.7450    0.7270    0.9815    0.9813    0.9971    0.9970

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

Gambar input adalah:

fzliver1 fzliver2 fzliver3

Gomathi
sumber
Apa yang Anda gunakan untuk mengimplementasikan algoritma Fuzzy C-Means?
Spacey
@Mohammad, saya tidak mengerti, tuan. Jika Anda bertanya tentang perangkat lunak, saya menggunakan Matlab.
Gomathi
Ya saya menyadarinya, tapi maksud saya apakah Anda menggunakan perpustakaan bawaan untuk implementasi segmentasi Fuzzy-C-Means, atau apakah Anda menulis sendiri, atau mengimpor perpustakaan pihak ke-3? Saya bertanya karena saya juga tertarik untuk mengimplementasikan segmentasi algo juga, dan platform saya juga MATLAB.
Spacey
@Mohammad Tidak pak, saya tidak menginstal perpustakaan khusus untuk FCM. Saya menggunakan FCM Thresheholding. Lihat Matlab Central File Exchange. Semoga bermanfaat untuk Anda.
Gomathi
metode yang bagus tapi saya punya Software ENVI 4.0. Saya ingin memproses citra satelit Landsat 7 untuk mengevaluasi volume pohon

Jawaban:

8

Apakah Anda menggunakan Matlab? Jika demikian maka Anda akan memerlukan Bioinformatika Toolbox, yang mencakup classifier SVM, atau Anda dapat mengunduh libsvm, yang memiliki pembungkus Matlab untuk pelatihan dan pengujian.

Maka Anda akan membutuhkan beberapa data berlabel. Apakah Anda mengklasifikasikan tumor hati sebagai lawan dari hati yang sehat? Maka Anda akan membutuhkan gambar tumor hati dan hati yang sehat, masing-masing diberi label demikian.

Maka Anda perlu menghitung beberapa fitur. Apa itu, tergantung pada sifat masalahnya. Fitur tekstur tampak seperti awal yang baik. Pertimbangkan untuk menggunakan matriks kejadian bersama atau pola biner lokal.

Sunting: Pada rilis R2014a ada fungsi fitcsvm dalam kotak alat pembelajaran statistik dan mesin untuk melatih classifier SVM biner. Ada juga fitcecoc untuk melatih SVM multi-kelas.

Dima
sumber
Terima kasih. Saya telah mengunduh libsvm. Saya juga menghitung fitur tekstur menggunakan matriks co-kejadian tingkat abu-abu. Tapi saya tidak tahu bagaimana memberi input ke program svm. Silakan merujuk ke stackoverflow.com/questions/9751265/... Mohon bimbing saya.
Gomathi