Вы находитесь на странице: 1из 22

Implementación de códigos en software

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 trabajar con 3 imágenes enfermas y 3
imágenes 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 el paso 2, en el


ejercicio 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% de la
“enfermedad” 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.

Nota1: Si no está trabajando en la carpeta donde se encuentra la imagen


guardada, al realizar el código le saldrá error.

Nota2: Para que el código sea válido, debe tener una línea con su nombre.

a. Explique cada línea de código.

Borra todas las entradas y salidas de la


clc pantalla de la ventana de comandos,
brindándole una "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
Lee la imagen del archivo especificado
Vitiligio=imread('enferm
por filename, infiriendo el formato del
aX.jpg');
archivo a partir de su contenido.
Vitiligio =im2double( El comando im2double permite convertir
Vitiligio ); la imagen al doble de la precisión
Se hace llamado a un marco donde se
figure;
mostrar la imagen.
imshow( Vitiligio ) Comando para mostrar la imagen.
umbral=0.50; El umbral será de 0.5
binVitiligio=im2bw(Vitili Permite convertir la imagen en escala de
gio,umbral); grises a una imagen binaria
Establece el número de pixeles para
numpixels=1000;
mostrar la imagen
filtro1=bwareaopen(binV perrmite eliminar algunos pixeles de la
itiligio,numpixels); imagen en modo binario
imshow(filtro1) Comando para mostrar la imagen.
representa un elemento
estructurante morfológico plano, que es
se3=strel('line',8,3);
una parte esencial de las operaciones de
dilatación y erosión morfológicas
dilata la escala de grises, binario, o una
dilatacion1=imdilate(Filt
imagen binaria lleno I, volviendo la
ro1,se3);
imagen dilatada, J.
bwlabel se utiliza para contar los objetos
[Lo
que contiene la imagen después de
num]=bwlabel(Filtro1);
binarizada
Devuelve mediciones para el conjunto de
propiedades especificadas por properties
prop=regionprops(Lo);
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 de la imagen que se está
MaxArea=max([prop.Are
trabajando.
a]);
b. ¿Cómo funciona y que datos obtienen de la función
“bwlabel”?

se utiliza para contar los objetos que contiene la imagen después


de binarizada, significa que devuelve la matriz de etiquetas L que
contiene etiquetas para los objetos conectados a 8 que se
encuentran en BW.

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 obtenidos.

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. La estructura que contiene una estructura para
cada objeto en la imagen. Se puede usar en regiones contiguas y
regiones no contiguas.
Enferma 7
Enferma 8
Enferma 6
Sana 6
Sana 5

Sana 4
Sana 3
2. Desarrolle el siguiente código en el script de Matlab. (Asegúrese de
estar trabajando en la carpeta que ya se ha creado).

Nota1: Si no está trabajando en la carpeta donde se encuentra la imagen


guardada, al realizar el código le saldrá error.

Nota2: Para que el código sea válido, debe tener una línea con su nombre.

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 imágenes enfermas y las 3 imágenes 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.

datos=xlsread('datos.xls
Lee el archivo de datos.
x');
caracteristicas=datos(1: Definición del tamaño del vector en el
end,1:3); que se almacenan los datos.
entrenamiento=datos(1:
Define la variable entrenamiento.
end,4);
svmStruct = Entrena o valida de forma cruzada un
fitcsvm(caracteristicas,e modelo de máquina de vectores de un
ntrenamiento,'Standardiz soporte (SVM) para la clasificación de
e',true,'KernelFunction','l dos clases (binario) en un conjunto de
inear','kernelScale','auto' datos de predictor de dimensión baja o
); moderada
prueba=xlsread('prueba.
Lee el archivo prueba.
xlsx');
Este comando calcula la salida de un
modelo identificado utilizando los datos
clasificacion = medidos de entrada-salida. Para
predict(svmStruct,xprue identificar el modelo, primero recopila
ba) todos los datos de entrada y salida y
luego estimas los parámetros del modelo
fuera de línea.
3. Clasificador de umbral o perceptrón: 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.

3
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

Вам также может понравиться