Як отримати текстуру за допомогою GLCM та класифікувати за допомогою SVM Classifier?


12

Я над проектом сегментації та класифікації пухлин печінки. Я використовував регіональне вирощування та FCM для сегментації печінки та пухлини відповідно. Тоді я використовував матрицю сірого рівня спільної появи для вилучення текстури. Мені потрібно використовувати підтримку векторної машини для класифікації. Але я не знаю, як нормалізувати функціональні вектори, щоб я міг дати це як вхід до SVM. Хтось може сказати, як запрограмувати його в Matlab?

Програмі GLCM я подав зображення в якості сегмента пухлини. Чи я був прав? Якщо так, я думаю, значить, і мій результат буде правильним.

Наскільки я спробував моє кодування в glcm,

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

Це була правильна реалізація? Також я отримую помилку в останньому рядку.

Мій вихід:

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 =

Стовпці з 1 по 6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988

Стовпці 7 - 12

0.9930    0.9935    0.0345    0.0339    0.8223    0.8255

Стовпці з 13 по 18

0.9616    0.9617    0.9957    0.9957    0.0230    0.0246

Стовпці з 19 по 24

0.7450    0.7270    0.9815    0.9813    0.9971    0.9970

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

Вхідні зображення:

fzliver1 fzliver2 fzliver3


Що ви використали для реалізації алгоритму Fuzzy C-Means?
Спейси

@ Мохаммед, я не розумію вас, сер. Якщо ви запитуєте про програмне забезпечення, я використав Matlab.
Гомати

Так, я це розумію, але я маю на увазі, чи використовували ви вбудовану бібліотеку для впровадження сегментації Fuzzy-C-Means, чи ви писали власну, чи імпортували сторонні бібліотеки? Я запитую, тому що я також зацікавлений у застосуванні альго сегментації, і моя платформа також MATLAB.
Спейсі

@Mohammad Ні, сер, я не встановив жодної бібліотеки, специфічної для FCM. Я використав FCM Thresheholding. Зверніться до центрального обміну файлами Matlab. Сподіваюся, це було б вам корисно.
Гомати

хороший метод, але у мене є програмне забезпечення ENVI 4.0. Я хочу, щоб процеси супутникового зйомки Landsat 7 оцінювали об'єм дерева

Відповіді:


8

Ви використовуєте Matlab? Якщо так, то вам знадобиться або Bioinformatics Toolbox, який включає класифікатор SVM, або ви можете завантажити libsvm, який має обгортки Matlab для навчання та тестування.

Тоді вам знадобляться деякі мічені дані. Ви класифікуєте пухлини печінки на відміну від здорової печінки? Тоді вам знадобляться зображення пухлин печінки та здорової печінки, кожен із яких позначений як такий.

Потім потрібно обчислити деякі функції. Що це таке, залежить від природи проблеми. Особливості текстури здаються гарним початком. Подумайте про використання матриць спільного виникнення або локальних бінарних шаблонів.

Редагувати: На момент випуску R2014a в панелі інструментів статистики та машинного навчання є функція fitcsvm для навчання бінарному класифікатору SVM. Також є фітнес-кок для тренувань багатокласного SVM.


Дякую. Я завантажив libsvm. Я також обчислював функції текстури, використовуючи сірі рівні матриць спільної появи. Але я не знаю, як дати внесок у програму svm. Будь ласка, зверніться до stackoverflow.com/questions/9751265/… .
Гомати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.