2. Implementación de los siguientes códigos Procedimiento (Experimento) – Parte Parte Individual: 2.1 Desarrolle el siguiente código en el script de Matlab. (Asegúrese de estar trabajando en la carpeta que ya se ha creado). Para esta unidad el estudiante debe seleccionar 3 imágenes enfermas y 3 imágenes sanas sanas (la base de datos será proporcionada por el tutor, por favor, solicitarla por correo interno) El código a utilizar es el que ya se implementó en la fase 2, en el ejercicio 2.1. La combinación de numpixel y umbral, debe ser única para las 6 imágenes y debe ser la que detecte por lo menos el 70% 70% del “tumor” en las 3 imágenes enfermas. Es decir, el estudiante no debe hacer un código por cada imagen, sino un código para todas las imágenes proporcionadas por el tutor.
a. Explique cada línea de código.
clc clear close all cerebro=imread('enferma1.jpg' cerebro=imread('enferma1.jpg'); ); cerebro=im2double(cerebro); figure; imshow(cerebro) umbral=0.50; bincerebro=im2bw(cerebro,umbral) ;
Borra todas las entradas y salidas de la pantalla de la ventana de comandos, brindándole una "pantalla limpia". Elimina todas las variables del espacio de trabajo actual, liberándolas de la memoria del sistema. Borra todas las figuras cuyos controladores no están ocultos Lee la imagen del archivo especificado por filename, infiriendo el formato del archivo a partir de su contenido. El comando im2double permite convertir la imagen al doble de la precisión Se hace llamado a un marco donde se mostrar la imagen. Comando para mostrar la imagen. El umbral será de 0.45 Permite convertir la imagen en escala de grises a una imagen binaria
numpixels=300; filtro1=bwareaopen(bincerebro,nu mpixels); imshow(filtro1) se3=strel('line',8,3); dilatacion1=imdilate(Filtro1 ,se3); [Lo num]=bwlabel(Filtro1);
prop=regionprops(Lo);
MinArea=min([prop.Area]); MaxArea=max([prop.Area]);
Establece el número de pixeles para p ara mostrar la imagen perrmite eliminar algunos pixeles de la imagen en modo binario Comando para mostrar la imagen. representa un elemento estructurante morfológico estructurante morfológico plano , que es una parte esencial de las operaciones de dilatación y erosión morfológicas dilata la escala de grises, binario, o una imagen binaria lleno I, volviendo la imagen dilatada, J. bwlabel se utiliza para contar los objetos que contiene la imagen después de binarizada Devuelve mediciones para el conjunto de propiedades especificadas por properties para cada componente 8-conectado (objeto) en la imagen binaria, BW. Permite conocer el área máxima y mínima dentro de la imagen que se está trabajando.
b. ¿Cómo funciona y que datos obtienen de la función “bwlabel”? bwlabel se utiliza para contar los objetos que contiene la imagen después de binarizada
c. ¿Qué valor se obtiene en las variables “Lo” y en “num”? Lo: Es una matriz la cual me permite identificar de acuerdo al filtro de pixeles toda la imagen para encontrar los objetos y toma el valor correspondiente. Núm: finamente identifica identifica la cantidad de objetos que hay en la imagen y nos muestra el resultado.
d. ¿Cómo funciona y que datos obtienen de la función “regionprops”? La función realiza el procesamiento morfológico de una imagen el cual cuenta el número de objetos de una imagen ubicándolos en su respectiva posición. 2.2. Cada estudiante debe obtener las siguientes características de cada una de 3 imágenes enfermas y de las 3 imágenes sanas. Las características las debe guardar en una matriz de Excel donde se tenga la siguiente información: Nota: todas las características deben ser obtenidas del mismo código, es decir el mismo umbral y el mismo filtro, o crear un código adaptativo por resolución de imagen. Asegúrese de hacer el mismo cuadro que se encuentra a continuación en Excel.
Imagen enferma 1 Imagen enferma 2 Imagen enferma 3 Imagen sana 1 Imagen sana 2 Imagen sana 3
Cantidad de objetos en la imagen
Área máxima
Área mínima
Clasificación
7
13130
312
1
8
31115
347
1
3
7766
4755
1
5
29014
417
0
1
14353
14353
0
1
11188
11188
0
El estudiante debe anexar el resultado de cada imagen procesada con un pantallazo de toda la ventana de Matlab, donde se observe: ComandWindows, Workspace, y Current Folder.
RESULTADOS IMÁGENES DE ENTRENAMIENTO Imagen enferma1:
Imagen enferma2:
Imagen enferma3:
Imagen sana1:
Imagen sana2:
Imagen sana3:
2.3 Desarrolle el siguiente código en el script de Matlab. (Asegúrese de estar trabajando en la carpeta que ya se ha creado). Nota: Si no está trabajando en la carpeta donde se encuentra la imagen guardada, al realizar el código le saldrá error.
Donde datos.xlsx es la tabla anteriormente creada y prueba.xlsx es una tabla que contiene nuevas características con imágenes diferentes a las 3 enfermas y las 3 sanas del punto anterior, ya que estas son con las que se entrenó la máquina (solicitar por correo interno a su tutor, la base de datos de las imágenes de prueba). El estudiante debe incluir en el documento docu mento de entrega tanto la tabla de las características con las que entreno la máquina, es decir las contenidas en datos.xlsx y la tabla que contiene las características nuevas contenidas en prueba.xlsx. Explique cada línea del código.
RESULTADOS IMÁGENES DE PRUEBA Cantidad de objetos en la imagen
Área máxima
Área mínima
Clasificación
2
60314
877
0
2
17416
849
0
2
8871
537
0
6
3287
411
0
3
2016
1400
0
1
64626
64626
0
Imagen enferma 6 Imagen enferma 7 Imagen enferma 8 Imagen sana 5 Imagen sana 6 Imagen sana 7
clc
clear close all datos=xlsread('datos.xlsx' datos=xlsread( 'datos.xlsx'); ); caracteristicas=datos(1:end,1:3); entrenamiento=datos(1:end,4); svmStruct=fitcsvm(caracteristicas,ent renamiento,'Standardize' renamiento,'Standardize',true, ,true,'Kernel 'Kernel Function', Function' ,'linear' 'linear', ,'KernelScale' 'KernelScale', ,'aut o'); o' );
Borra todas las entradas y salidas de la pantalla de la ventana de comandos, brindándole "pantalla limpia". Elimina todas las variables del espacio de trabajo actual, liberándolas de la memoria del sistema. Borra todas las figuras cuyos controladores no están ocultos Lee el archivo datos. Define el tamaño del vector en el que él se almacenaran los datos Declara la variable entrenamiento Fitcsvmv entrena o valida de forma cruzada un modelo de máquina de vectores de una soporte (SVM) para la clasificación de dos clases (binario) en un conjunto de datos de predictor de dimensión baja o moderada.
prueba=xlsread('prueba.xlsx' prueba=xlsread( 'prueba.xlsx'); );
Imagen enferma 6:
Imagen enferma 7:
Imagen enferma 8:
Permite leer el archivo guardado como prueba.
Imagen sana 5:
Imagen sana 6:
Imagen sana 7:
2.4 Clasificador de umbral: con las dos primeras características (cantidad de objetos y área máxima), el estudiante realizará el clasificador por umbral. El estudiante debe investigar cómo realizar este clasificador, anexar el código y resultados obtenidos .
Para ello se realiza levantamiento de información con las imágenes obtenidas tanto de las enfermas como las sanas, se guarda una matriz con estos datos (cantidad de objetos, área máxima y área mínima), y se realiza una prueba adicional con valores diferentes con el fin de encontrar diferencias entre las mismas, finalmente se implementa el códi go así:
datos=xlsread('datos.xlsx'); caracteristicas=datos(1:end,1:3); entrenamiento=datos(1:end,4); svmStruct = fitcsvm(caracteristicas,entrenamiento,'KernelFunction','linear'); num=xlsread('prueba.xlsx'); xprueba=num(1:end,1:3); yprueba=num(1:end,4);thrue=yprueba; clasificacion=predict(svmStruct,xprueba) obteniendo los siguientes resultados en el programa así:
REFERENCIAS BIBLIOGRAFICAS
Aguado, A. S. (2012). Feature (2012). Feature Extraction and Image Processing for Computer Vision. Vision. Oxford: Academic Press 2012. Available from: eBook Collection (EBSCOhost), pp. 37 81. Recuperado de: http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pass=danue0a0&url=http:/ /bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&AN=477505&lang =es&site=ehost-live Bovik, A. C. (2005). Handbook (2005). Handbook of Image and Video Processing . Amsterdam: Academic Press, 2005. eBook Collection (EBSCOhost), pp. 57 – 73. 73. Recuperado de: http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pass=danue0a0&url=http: //bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&AN=214674&lang =es&site=ehost-live Mateus, P. (2017, junio 26), Transformadas. [OVI]. Recuperado de: http://hdl.handle.net/10596/12679 Hemanth, D. J., & Estrela, V. V. (2017). Deep Learning for Image Processing Applications. Amsterdam, Netherlands. Recuperado de: http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/login.aspx?direct =true&db=nlebk&AN=1791226&lang=es&site=eds-live&ebv=EB&ppid=pp_Cover