Está en la página 1de 13

2.

Implementación de los siguientes códigos


Procedimiento (Experimento) – 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% 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.

Borra todas las entradas y salidas de la pantalla de


clc la ventana de comandos, brindándole una
"pantalla limpia".
Elimina todas las variables del espacio de trabajo
clear
actual, liberándolas de la memoria del sistema.
Borra todas las figuras cuyos controladores no
close all
están ocultos
Lee la imagen del archivo especificado por
cerebro=imread('enferma1.jpg'); filename, infiriendo el formato del archivo a partir
de su contenido.
El comando im2double permite convertir la
cerebro=im2double(cerebro);
imagen al doble de la precisión
Se hace llamado a un marco donde se mostrar la
figure;
imagen.
imshow(cerebro) Comando para mostrar la imagen.
umbral=0.50; El umbral será de 0.45
bincerebro=im2bw(cerebro,umbral) Permite convertir la imagen en escala de grises a
; una imagen binaria
Establece el número de pixeles para mostrar la
numpixels=300;
imagen
filtro1=bwareaopen(bincerebro,nu perrmite eliminar algunos pixeles de la imagen en
mpixels); modo binario
imshow(filtro1) Comando para mostrar la imagen.
representa un elemento estructurante morfológico
se3=strel('line',8,3); plano , que es una parte esencial de las
operaciones de dilatación y erosión morfológicas
dilatacion1=imdilate(Filtro1 dilata la escala de grises, binario, o una imagen
,se3); binaria lleno I, volviendo la imagen dilatada, J.
[Lo num]=bwlabel(Filtro1);
bwlabel se utiliza para contar los objetos que
contiene la imagen después de binarizada
Devuelve mediciones para el conjunto de
prop=regionprops(Lo);
propiedades especificadas por properties para cada
componente 8-conectado (objeto) en la imagen
binaria, BW.
MinArea=min([prop.Area]); Permite conocer el área máxima y mínima dentro
MaxArea=max([prop.Area]); 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 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.
Cantidad
de objetos Área Área
Clasificación
en la máxima mínima
imagen
Imagen enferma 1 7 13130 312 1
Imagen enferma 2 8 31115 347 1
Imagen enferma 3 3 7766 4755 1
Imagen sana 1 5 29014 417 0
Imagen sana 2 1 14353 14353 0
Imagen sana 3 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 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 Área Área
Clasificación
en la máxima mínima
imagen
Imagen enferma 6 2 60314 877 0
Imagen enferma 7 2 17416 849 0
Imagen enferma 8 2 8871 537 0
Imagen sana 5 6 3287 411 0
Imagen sana 6 3 2016 1400 0
Imagen sana 7 1 64626 64626 0

Borra todas las entradas y salidas de la


clc pantalla de la ventana de comandos,
brindándole "pantalla limpia".
Elimina todas las variables del espacio de
clear trabajo actual, liberándolas de la
memoria del sistema.
Borra todas las figuras cuyos
close all
controladores no están ocultos
datos=xlsread('datos.xlsx'); Lee el archivo datos.
caracteristicas=datos(1:end,1:3); Define el tamaño del vector en el que él
se almacenaran los datos
entrenamiento=datos(1:end,4); Declara la variable entrenamiento
svmStruct=fitcsvm(caracteristicas,ent Fitcsvmv entrena o valida de forma
renamiento,'Standardize',true,'Kernel cruzada un modelo de máquina de
Function','linear','KernelScale','aut
o'); 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'); Permite leer el archivo guardado como
prueba.

Imagen enferma 6:

Imagen enferma 7:

Imagen enferma 8:
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ódigo 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 Extraction and Image Processing for Computer 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 of Image and Video Processing. Amsterdam: Academic
Press, 2005. eBook Collection (EBSCOhost), pp. 57– 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

También podría gustarte