Está en la página 1de 10

Unidad 2- Fase 3 - Implementar clasificadores y entrenamiento de máquinas

Presentado por:

Sergio Giovani Sanclemente Ramirez

Cód: 1032439248

Tratamiento De Imágenes

Grupo: 208054_12

Presentado a:

Paola Andrea Mateus

Tutora

Universidad Nacional Abierta y a Distancia UNAD

Escuela de Ciencias Básicas, Tecnología E Ingeniería

Octubre del 2018


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.

clc Borrar todo


clear Limpia la memoria.
close all cierra todas las ventanas de figuras
cerebro=imread('enferma3.jpg'); Carga la imagen seleccionada por el nombre de
archivo.
cerebro=im2double(cerebro); duplica la precisión de la imagen
figure; Se llama un marco para la imagen.
imshow(cerebro) Mostrar la imagen.
umbral=0.5; El umbral será de 0.5
bincerebro=im2bw(cerebro,umbral); Convertir la imagen a binaria
numpixels=300; Define el número de pixeles
filtro1=bwareaopen(bincerebro,numpixels); Elimina algunos pixeles
imshow(filtro1) Mostrar la imagen.
se3=strel('line',8,3); Crea un elemento de estructuración en forma
de diamante, donde r especifica la distancia
desde el origen del elemento de estructuración
hasta los puntos del diamante.
dilatacion1=imdilate(Filtro1,se3); dilata la escala de grises, binario, o una imagen
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
prop=regionprops(Lo); Devuelve mediciones para el conjunto de
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
MaxArea=max([prop.Area]); dentro de la imagen que se está trabajando.

b. ¿Cómo funciona y que datos obtienen de la función “bwlabel”?

Bwlabel: posterior a la binarización se utiliza este comando para contar los objetos que
contiene las imagenes
c. ¿Qué valor se obtiene en las variables “Lo” y en “num”?

Lo: Es una matriz que identifica la imagen para encontrar los objetos de acuerdo al filtro de
pixeles.
Núm: identifica la cantidad de objetos que hay en una imagen y muestra el resultado.

d. ¿Cómo funciona y que datos obtienen de la función “regionprops”?

La función cuenta el número de objetos de una imagen ubicándolos en su posición mediante


el procesamiento morfológico de la imagen.

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 3 3 7766 4755 1
Imagen enferma 4  2 13669 9844 1
Imagen enferma 5  3 12055 1519 1
Imagen sana 3  1 11188 11188 0
Imagen sana 4  1 11772 11772 0
Imagen sana 5  5 3287 411 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 enferma3:

Imagen enferma4:

Imagen enferma5:
Imagen sana3:

Imagen sana4:

Imagen sana5:
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 1 9 13130 241 1
Imagen enferma 7 2 17416 849 1
Imagen enferma 8 3 8871 233 1
Imagen sana 1 6 29014 237 0
Imagen sana 6 4 2016 215 0
Imagen sana 7 1 64626 64626 0

clc Borrar todo


clear Limpia la memoria.
close all cierra todas las ventanas de figuras
datos=xlsread('datos.xlsx'); Lee el archivo datos.
caracteristicas=datos(1:end,1:3); Tamaño del vector en el que él se
almacenaran los datos
entrenamiento=datos(1:end,4); Declara la variable entrenamiento
svmStruct=fitcsvm(caracteristicas,entrenamient Fitcsvmv entrena de forma cruzada un
o,'Standardize',true,'KernelFunction','linear','Ker modelo de máquina de vectores de un
nelScale','auto'); 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'); Lee el archivo prueba.

Imagen enferma 1:
Imagen enferma 7:

Imagen enferma 8:

Imagen sana 1:
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í:
clc
clear
close all
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

 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

 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

También podría gustarte