Está en la página 1de 21

1

Tratamiento de Imágenes

Unidad 2: Paso 3 - Aprendizaje De Máquinas

Presentado a:
Sandra Milena Garcia

Entregado por:
Danny F. Martinez Marin - 93237123

Grupo: 208054_23

Universidad nacional abierta y a distancia - UNAD


Escuela de ciencias básicas, ingenierías y tecnologías
Ingeniería en telecomunicaciones
2021
2

Introducción

En el desarrollo de esta actividad individual se deja evidencia del desarrollando de los puntos
propuestos en esta guía de actividades, nos adentraremos inicialmente en un conjunto de
definiciones de términos relacionados a la identificación de características, clasificadores
supervisados y no supervisados en imágenes.
El objetivo principal de la actividad es orientar al grupo estudiantil recopilar información
necesaria para la resolución del proyecto planteado durante este curso.
3

Objetivos

 Realizar un análisis de los temas propuestos.


 Definir cada uno de los conceptos y dar solución a la actividad.
 Conocer utilizar y realizar los diferentes análisis de imágenes que permiten tener una
cierta información que ayude a un proceso de investigación.
4

Actividades A Desarrollar

Implementación de códigos en software

1. Desarrolle el siguiente código en el script de Matlab y guárdelo como “aprendizaje”.


(Asegúrese de estar trabajando en la carpeta que ya se ha creado). Para esta unidad
el estudiante debe trabajar la base de datos de entrenamiento y la base de datos de
prueba (las dos bases de datos serán proporcionadas 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
segmente mejor el dispositivo. Es decir, el estudiante no debe cambiar el valor del umbral
y del numpixel en cada imagen, sino debe ser un mismo valor de estas dos variables 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ño, periodo
académico y semestre actual que esta cursando el estudiante (según plan de estudios).
5

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


Codigo:
% Danny Franceny Martinez Marin
% Año: 2021
% Perido: 2021 II / 16-04
% Semestre: Octavo

clc %%Borra el texto de la ventana de comandos


clear all %%Elimina todas las variables del espacio de trabajo
close all %%Cierra todas las variables del espacio de trabajo

comunicacion=imread('Destornillador_1.jpg');%lee o reconoce la imagen original


a trabajar
6

comunicacion=im2double(comunicacion);%%se guarda una conversión a doble


precisión a la imagen original
figure;%%Crea ventana de figura
imshow(comunicacion)%% Mostrar la imagen con doble precisión

umbral=0.9; %%valor Umbral de luminancia, especificado como un número en el


intervalo [0, 1].
binComunicacion=im2bw(comunicacion,umbral);%% convierte la imagen en imagen
binaria
binComunicacion=~binComunicacion;
numpixels=100;%% Número máximo de píxeles en objetos, especificado como un
entero no negativo.
Filtro1=bwareaopen(binComunicacion,numpixels);%%elimina todos los componentes
conectados (objetos) que tienen menos de píxeles de la imagen binaria,
produciendo otra imagen binaria

se3=strel('line',8,3);%crea un elemento de estructuración lineal que es


simétrico con respecto al centro de vecindad, con longitud y ángulo
aproximados
dilatacion1=imdilate(Filtro1,se3);%Dilata la imagen con un elemento de
estructuración de línea vertical y compara los resultados.
figure;%%Crea ventana de figura
imshow(dilatacion1)%Muestra la imagen dilatada
[Lo num]=bwlabel(dilatacion1);%devuelve una matriz de etiquetas ydevuelve el
número de objetos conectados encontrados en la imagen binaria
prop=regionprops(Lo);%mide un conjunto de propiedades para cada región
etiquetada en la imagen de etiqueta Lo
figure;%%Crea ventana de figura
imshow(Lo)%Muestra la imagen de etiqueta Lo

MaxArea=max([prop.Area]);%devuelve los elementos máximos de un array.


MinArea=min([prop.Area]);%devuelve los elementos mínimos de una matriz.

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


 Su función es etiquetar componentes conectados en imagen binaria 2D, se puede utilizar
en varias formas pero en nuestro caso etiqueta los componentes de imagen dilatación1 y
obteniendo de ella una matriz de etiquetas y el número de objetos conectados.
c. ¿Qué valor se obtiene en las variables “Lo” y en “num”?
 En el caso de Lo se obtiene una matriz de enteros no negativos con el mismo tamaño que
la imagen binaria. Los píxeles etiquetados forman un objeto; los píxeles etiquetados
conforman un segundo objeto; y así sucesivamente. Tipo de datos: doublé.
 En el caso de num su valor es un número de objetos conectados en la imagen binaria,
devueltos como un entero no negativo. Tipo de datos: doublé.
d. ¿Cómo funciona y que datos obtienen de la función “regionprops”?
 Su función es medir las propiedades de las regiones de imagen, devolviendo u
obteniendo unos tipos de medidas especificadas como una lista separada por
comas de escalares de cadena o vectores de caracteres, una matriz de celdas de
7

escalares de cadena o vectores de caracteres, al no especificarse calcula solo las


medidas de ‘Area’,’Centroid’ y ‘BoundingBox’o si se especifica al gun tipo de
medida especial o todas, que en este caso serian las tres anteriores y ‘Circularity’,
‘ConvexArea’, ‘ConvexHull’, ‘ConvexImage’, ‘Eccentricity’, ‘EquivDiameter’,
‘EulerNumber’, ‘Extent’, ‘Extrema’, ‘FilledArea’, ‘FilledImage’, ‘Image’,
‘MajorAxisLength’, ‘MaxFeretProperties’, ‘MinFeretProperties’,
‘MinorAxisLength’, ‘Orientation’, ‘Perimeter’, ‘PixelIdxList’, ‘PixelList’,
‘Solidity’ y ‘SubarrayIdx’.
2. Cada estudiante debe obtener las siguientes características de cada una de las
imágenes de la base de datos de entrenamiento. Las características las debe guardar
en una matriz de Excel donde se tenga la siguiente información:
Cantidad Área Área Clasificación Clasificación
de máxima mínima
SVM Experto
objetos
en la
imagen
Imagen de 7 133179 14037 1 1
entrenamiento –
Destornillador_1
Imagen de 6 130180 65217 1 1
entrenamiento –
Destornillador_2
Imagen de 6 63747 28888 1 1
entrenamiento –
Destornillador_4
Imagen de 5 175180 246 0 0
entrenamiento –
Alicates_5
Imagen de 1 533369 533369 0 0
entrenamiento –
Alicates_6
Imagen de 9 241749 194 0 0
entrenamiento –
Alicates_7

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.
Imagen de Entrenamiento – Destornillador_1
8

Imagen de Entrenamiento – Destornillador_2

Imagen de Entrenamiento – Destornillador_4:


9

Imagen de Entrenamiento – Alicates_5:

Imagen de Entrenamiento – Alicates_6:


10

Imagen de Entrenamiento – Alicates_7:

De acuerdo a la investigación que usted ha realizado sobre máquinas de soporte vectorial,


sabe que la clasificación está dada en binario, por lo tanto, 1 será nuestra clasificación para
imagen juego del destornillador y 0 para imagen el juego de alicates.
11

 Guarde la tabla anterior como “entrenamiento.xlsx”

3. Desarrolle el siguiente código en el script de Matlab creado en el punto 1. (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.
Cada estudiante debe obtener las siguientes características de cada una de las imágenes de
la base de datos de prueba. Las características las debe guardar en una matriz de Excel
que se llame “prueba.xlsx” donde se tenga la siguiente información:
Cantidad Área Área Clasificación Clasificación
de objetos máxima mínima
SVM Experto
en la
imagen
Imagen de 6 55216 27285 1 1
prueba –
Destornillador_
7
Imagen de 6 64822 31800 1 1
prueba –
Destornillador_
8
12

Imagen de 6 99146 52276 1 1


prueba –
Destornillador_
9
Imagen de 4 216934 111270 0 0
prueba –
Alicates_1
Imagen de 4 264647 132508 0 0
prueba –
Alicates_2
Imagen de 9 247806 215 0 1
prueba –
Alicates_3

Imagen de Prueba – Alicates_1:

Imagen de Prueba – Alicates_2:


13

Imagen de Prueba – Alicates_3:

Imagen de Prueba – Destornillador_7:


14

Imagen de Prueba – Destornillador_8:

Imagen de Prueba – Destornillador_9:


15

 Guarde la tabla anterior como “prueba.xlsx”


16

Clasificación:

 Explique cada línea del código.

% Danny Franceny Martinez Marin


% Año: 2021
% Perido: 2021 II / 16-04
% Semestre: Octavo

clc %%Borra el texto de la ventana de comandos


clear all %%Elimina todas las variables del espacio de trabajo
close all %%Cierra todas las variables del espacio de trabajo

datos=xlsread('Entrenamiento.xlsx'); %Lee los datos numéricos de la primera


hoja de cálculo denominado Entrenamiento y devuelve los datos numéricos en una
matriz.
17

caracteristicas=datos(1:end,1:3); %Permite almacenar los datos de las tres


primeras columnas de la matriz.
entrenamiento=datos(1:end,4); %Permite almacenar los datos de la cuarta
columna de la matriz.

%Entrenamiento Máquina - Danny Franceny Martinez Marin


svmStruct =
fitcsvm(caracteristicas,entrenamiento,'Standardize',true,'Kernelfunction','lin
ear','KernelScale','auto'); %Clasificador de máquina vectorial de soporte de
tren (SVM) para clasificación de una clase y binaria

prueba=xlsread('Prueba.xlsx'); %Lee los datos numéricos de la primera hoja de


cálculo denominado Prueba y devuelve los datos numéricos en una matriz.
xprueba=prueba(1:end,1:3); %Permite almacenar los datos de las tres primeras
columnas de la matriz.

clasificacion=predict(svmStruct,xprueba) %Predecir etiquetas usando el modelo


de clasificación de vecino k más cercano.

4. 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.
Cantidad Área
de máxima
objetos
en la
imagen
Imagen de 7 133179
entrenamiento –
Destornillador_1
Imagen de 6 130180
entrenamiento –
Destornillador_2
Imagen de 6 63747
entrenamiento –
Destornillador_4
Imagen de 5 175180
entrenamiento –
Alicates_5
Imagen de 1 533369
entrenamiento –
Alicates_6
Imagen de 9 241749
entrenamiento –
18

Alicates_7

Nota: Este clasificador no se realiza con el mismo código de la SVM, ustedes deben crear el
código usando condicionales “if”.

Imagen del clasificador de umbral o perceptrón.

Codigo:
% Danny Franceny Martinez Marin
% Año: 2021
% Perido: 2021 II / 16-04
% Semestre: Octavo

clc %%Borra el texto de la ventana de comandos


clear all %%Elimina todas las variables del espacio de trabajo
close all %%Cierra todas las variables del espacio de trabajo

datos=xlsread('Entrenamiento.xlsx');%Lee los datos numéricos de la primera


hoja de cálculo denominado Entrenamiento y devuelve los datos numéricos en una
matriz.
caracteristicas=datos(1:end,1:2);%Permite almacenar los datos de las dos
primeras columnas de la matriz.

prom=mean(caracteristicas); %Se calacula el valor medio de la matriz


m=(prom(1,2)/prom(1,1)); %Se calcula la pendiente
19

x=1:1:35;
y=m*x-(m*(prom(1,1))-(prom(1,2))); %Se calcula la linea de umbral

prueba=xlsread('Prueba.xlsx'); %Lee los datos numéricos de la primera hoja de


cálculo denominado Prueba y devuelve los datos numéricos en una matriz.
xprueba=prueba(1:end,1:2);%Permite almacenar los datos de las dos primeras
columnas de la matriz.
n=length(xprueba); %Se calcula el largo del vector
clasificacion=zeros(6,1); %Se crea una matriz de ceros de 6 filas y una
columna.

%Se crea un for para recorrer la matriz


for i=1:1:n

y2=m*(xprueba(i,1))-(m*(prom(1,1))-(prom(1,2))); %para el valor de


objetos, calculo la area maxima que deberia tener, segun la linea de umbral

if y2>xprueba(i,2) %si el dicho valor es mayor que el valor de el area


maxima, entonces es el computador y se le asigna el valor de 1
clasificacion(i,1)=1;
else
%si el valor es menor que el valor de el area maxima, entonces es el
celular y se le asigna el valor de 0
clasificacion(i,1)=0;
end
end

fprintf("Clasificación :\n\n");% Se muestra texto en pantalla


disp(clasificacion); % Se muestra los valores del vector
20

Conclusiones

 Se realizó la actividad interactuando en el entorno de aprendizaje colaborativo y se puede


ver que el contenido y la temática de este curso nos van a mostrar mucho más allá, de lo que
se puede hacer con una imagen, y como es que con determinado proceso se puede extraer
información relevante para diversos proyectos.
 Se obtuvo la información para el desarrollo de la actividad además se aplicaron diferentes
códigos y procedimientos en la imagen dada.
 Se dio la respuesta a las diferentes preguntas planteadas y también se hizo el proceso de la
imagen seleccionada por cada integrante logrando obtener un buen resultado en cada uno de
los experimentos, siendo de gran importancia para afianzar nuestros conocimientos logrando
obtener un buen aprendizaje en la materia
21

Bibliografía

 Nixon, M. S., & Aguado, A. S. (2002). Feature Extraction and Image Processing. Oxford:
Newnes, pp. 37 - 81. Recuperado de http://bibliotecavirtual.unad.edu.co/login?
url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=204193&lang=es&site=eds-live&scope=site
 Bovik, A. C. (2005). Handbook of Image and Video Processing (Vol. 2nd ed).
Amsterdam: Academic Press, pp. 57 - 73. Recuperado de
http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=214674&lang=es&site=eds-live&scope=siteBovik, A. C.
(2005). Handbook of Image and Video Processing (Vol. 2nd ed). Amsterdam: Academic
Press, pp. 4 - 12. Recuperado de http://bibliotecavirtual.unad.edu.co/login?
url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=214674&lang=es&site=eds-live&scope=site
 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: IOS Press. Retrieved from
http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=1791226&lang=es&site=eds-live&scope=site

También podría gustarte