Sie sind auf Seite 1von 6

APLICACIONES INDUSTRIALES EN LA INTELIGENCIA ARTIFICIAL PRACTICA 2

ENUNCIADO
Dado un conjunto de imgenes tomadas con microscopio, que representan casos benignos, malignos y dudosos de cncer, extraer las siguientes caractersticas: Valor mximo de R,G,B y de H,S,V (convertir de RGB a HSV con la funcin rgb2hsv), y mximo de I, siendo I la media de R,G y B. Usar siempre valores normalizados al nmero de pixels de la imagen Varianza de R,G,B y de H,S,V, normalizada tambin Sobre la matriz I calcular la matriz de coocurrencia y de ella estas caractersticas de textura: Suavidad, entropa, inercia, probabilidad mxima, momento directo de orden k, momento inverso de orden k, uniformidad, correlacin y homogeneidad local. Hacer con PRTOOLS un estudio de seleccin caractersticas, viendo cules son ms informativas Emplear PCA para quedarse solo con K caractersticas Entrenar y clasificar en benignas, malignos y dudosas, dando cifras de error de

SOLUCION:
1. FUNCION QUE SE ENCARGA DE LEER CADA IMAGEN Y EXTRAER LAS CARACTERISTICAS:
function C=imgchar2(img) img2=rgb2hsv(img); img=double(img)/256;

Esta funcin recibe como datos de entrada una imagen img y devuelve un vector C con todas las caractersticas calculadas: En el enunciado del problema, nos piden calcular un total de 23 caractersticas, pero debido a que al calcular determinadas caractersticas, aparecen valeros como NaN (Not a Number) o inf, hemos reducido el nmero de caractersticas a 19, las 14 primeras corresponden a los valores mximos y varianzas de R,G,B, H,S,V, e I. y las 5 restantes corresponden a las siguientes caractersticas calculadas a partir de la matriz de coocurencia: SUAVIDAD, INERCIA, PROBABILIDAD MXIMA, MOMENTO DIRECTO Y HOMOGENEIDAD LOCAL. El clculo de las 14 primeras caractersticas es directo y se hace sobre la imagen normalizada al nmero total de pxeles (256) Para el resto de caractersticas, se utiliza la funcin implementada imgmoments3, que recibe como argumento la matriz de covarianza (MC) y devuelve un vector con las cinco caractersticas calculadas C2.
2. PROCESO DE CALCULO DE CARACTERSTICAS PARA LAS DISTINTAS IMGENES:

El procedimiento es sencillo. Utilizamos un bucle for para leer las imgenes de una carpeta haciendo la concatenacin del directorio y el nombre del archivo:

files=dir('C:\Users\ICHAICOTO\Documents\MATLAB\PRACTICA2\img\benigna\* .ppm')
for i=1:n file=['C:\Users\ICHAICOTO\Documents\MATLAB\PRACTICA2\img\benigna\' files(i).name] img=imread(file); K=imgchar2(img); M1(i,:)=K; end

Siendo n el nmero total de archivos en el directorio. Para cada imagen leda, ejecutamos la funcin que se encarga de calcular las caractersticas. En total, tres bucles for, uno para cada carpeta de imgenes (benigna, maligna y dudosa). De cada bucle obtenemos una matriz de tamao nxm, siendo m el nmero total de caractersticas.

3. CONSTRUCCION DE LA MATRIZ DE CARACTERSTICAS Y EL DATASET DEL PROBLEMA.

A continuacin concatenamos las tres matrices obtenidas por cada clase y con esta construimos el dataset del problema:
M=[M1;M2;M3] % una matriz de (n1+n2+n3)xm DSET=dataset(M) % creamos dataset lab1='benigna'; lab2='maligna'; lab3='dudosas'; lablist=[repmat(lab1,size(M1,1),1);repmat(lab2,size(M2,1),1);repmat(la b3,size(M3,1),1)]; FLAB=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]; DSET=setlabels(DSET,lablist); %aadimos etiquetas a las clases DSET=setfeatlab(DSET,FLAB'); %etiquetamos las caractersticas.

4. HACEMOS EL ESTUDIO DE SELECCIN DE CARACTERISTICAS

Dividimos en datasets de entrenamiento y test y utilizamos las funciones de ranking y seleccin de caractersticas:
%ESTUDIO DE SELECCION DE CARACTERISTICAS [E,T]=gendat(DSET,[20 20 20]); [I,F]=featrank(E,'in-in'); [W,R]=featselm(DSET,'in-in') %APLICACION DE PCA w=pca(DSET,15);

DPCA=DSET*w;

RESULTADOS: - RESULTADOS DE FEATSELM:

- RESULTADOS DE FEATRANK:

5. ENTRENAMOS Y CLASIFICAMOS DANDO CIFRAS DE ERROR:


%ENTRANAMIENTO Y CLASIFICACION EN BENIGNAS, MALIGNAS Y DUDOSAS. [ENTRENAMIENTO,TEST]=gendat(DPCA,[20 20 20]); CLASIFICADOR1=knnc(ENTRENAMIENTO); CLASIFICADOR2=svc(ENTRENAMIENTO); CLASIFICADOR3=nmc(ENTRENAMIENTO); r1=TEST*CLASIFICADOR1; r2=TEST*CLASIFICADOR2; r3=TEST*CLASIFICADOR3; err1=testc(r1) CM1=confmat(r1) err2=testc(r2) CM2=confmat(r2) err3=testc(r3) CM3=confmat(r3)

RESULTADOS:

Das könnte Ihnen auch gefallen