Estoy en un proyecto de segmentación y clasificación de tumores hepáticos. Usé Region Growing y FCM para la segmentación del hígado y el tumor, respectivamente. Luego, utilicé la matriz de Coincidencia de nivel de gris para la extracción de características de textura. Tengo que usar Support Vector Machine para la clasificación. Pero no sé cómo normalizar los vectores de características para poder darlo como entrada al SVM. ¿Alguien puede decir cómo programarlo en Matlab?
Al programa GLCM, le di la imagen segmentada del tumor como entrada. ¿Estaba en lo correcto? Si es así, creo, entonces, mi salida también será correcta.
Mi codificación glcm, por lo que he intentado es,
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
¿Fue esta una implementación correcta? Además, recibo un error en la última línea.
Mi salida es:
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 =
Columnas 1 a 6
0.0510 0.0503 0.9513 0.9519 0.8988 0.8988
Columnas 7 a 12
0.9930 0.9935 0.0345 0.0339 0.8223 0.8255
Columnas 13 a 18
0.9616 0.9617 0.9957 0.9957 0.0230 0.0246
Columnas 19 a 24
0.7450 0.7270 0.9815 0.9813 0.9971 0.9970
??? Error using ==> minus
Matrix dimensions must agree.
Las imágenes de entrada son:
Respuestas:
¿Estás usando Matlab? Si es así, necesitaría el Bioinformatics Toolbox, que incluye un clasificador SVM, o puede descargar libsvm, que tiene envoltorios de Matlab para capacitación y pruebas.
Entonces necesitará algunos datos etiquetados. ¿Está clasificando los tumores hepáticos en lugar de un hígado sano? Entonces necesitaría imágenes de tumores hepáticos y hígados sanos, cada uno etiquetado como tal.
Entonces necesitas calcular algunas características. Lo que son, depende de la naturaleza del problema. Las características de textura parecen un buen comienzo. Considere usar matrices de coincidencia o patrones binarios locales.
Editar: a partir de la versión R2014a, hay una función fitcsvm en la Caja de herramientas de estadísticas y aprendizaje automático para entrenar a un clasificador binario SVM. También hay fitcecoc para entrenar un SVM multiclase .
fuente
Este artículo trata exactamente el mismo tipo de clasificación supervisada basada en
GLCM
clases etiquetadas : Características de textura GLCM para la clasificación de tumores cerebralesfuente