Я работаю над проектом сегментации и классификации опухолей печени. Я использовал Region Growing и 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
т =
Столбцы с 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.
Входные изображения:
Ответы:
Вы используете Matlab? Если это так, то вам потребуется либо набор инструментов для биоинформатики, который включает в себя классификатор SVM, либо вы можете скачать libsvm, который содержит оболочки Matlab для обучения и тестирования.
Тогда вам понадобятся некоторые помеченные данные. Вы классифицируете опухоли печени в отличие от здоровой печени? Тогда вам понадобятся изображения опухолей печени и здоровой печени, каждая из которых будет помечена как таковая.
Тогда вам нужно вычислить некоторые функции. Что это такое, зависит от характера проблемы. Особенности текстуры кажутся хорошим началом. Рассмотрите возможность использования матриц совместного использования или локальных двоичных шаблонов.
Редактировать: Начиная с версии R2014a, в инструментальных средствах статистики и машинного обучения есть функция fitcsvm для обучения двоичного классификатора SVM. Существует также fitcecoc для обучения мультикласса SVM.
источник
В этой статье рассматривается точно такой же тип контролируемой классификации на основе помеченных
GLCM
классов: Текстурные особенности GLCM для классификации опухолей головного мозга.источник