Está en la página 1de 26

PASO 3 – APRENDIZAJE DE MAQUINAS

TRATAMIENTO DE IMAGENES
208054_24

Presentado a:
SANDRA MILENA GARCIA
Tutor

Entregado por:

JOSE RICARDO LOPEZ PRADA


Código: 1.119.889.819

Grupo: 208054_24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
NOVIEMBRE 2020
INTRODUCCIÓN
El presente trabajo se realiza con el propósito de presentar los conceptos de
tratamientos de imágenes, mediante ejercicios se buscar aplicar el conocimiento
adquirido en el desarrollo de la guía.
OBJETIVOS
1) Adquirir conceptos del tratamiento de imágenes
2) Emplear técnicas de detección de bordes, binarización y filtrado, para la
segmentación de objetos de interés, mediante el software Matlab
3) Conocer las distintas sentencias que se emplean en el código para el
espacio de color.
Actividades a desarrollar

RESPUESTA A PREGUNTAS

1.Definición de conceptos: estudiando el libro guía, el estudiante investiga


de manera individual y da respuesta a las siguientes preguntas teóricas:

a. ¿Qué es extracción de características en una imagen?

Consiste en la extracción aparte de las características u objetos mas interesantes


o solicitados en una imagen analizada.

b. ¿Qué es un clasificador de umbral o perceptrón?

Consisten en que es un algoritmo encargado de por medio de valores binarios


identificar ciertas características que pedimos

C. ¿Qué es un clasificador supervisado y no supervisado en imágenes?

Clasificador supervisado:
La clasificación supervisada se basa en la disponibilidad de áreas de
entrenamiento. . Se trata de áreas de las que se conoce a priori la clase a la que
pertenecen y que servirán para generar una signatura espectral característica de
cada una de las clases. Se denominan clases informacionales. Estas deben ser
areas lo más homogeneas posibles y en las que sepamos lo que había el día que
se tomó la imagen

Clasificador no supervisado:
En la clasificación no supervisada no se establece ninguna clase a priori, aunque
es necesario determinar el número de clases que queremos establecer, y se
utilizan algoritmos matemáticos de clasificación automática. Los más comunes son
los algoritmos de clustering que divide el espacio de las variables en una serie de
regiones de manera que se minimice la variabilidad interna de los pixeles incluidos
en cada región.
d. ¿Qué es máquina de soporte vectorial?

el Support Vector Machine (SVM) es un modelo supervisado de aprendizaje con


algoritmos asociados que analizan los datos y reconocen patrones, que se utiliza
para la clasificación y el análisis de regresión en la Inteligencia de Negocios.
El SVM básico toma un conjunto de datos de entrada y predice, para cada entrada
dada, a cuál de las dos clases de salida pertenece, por lo que es un clasificador
no-probabilístico lineal binario (solo escoge entre 2 opciones). Dado un conjunto
de ejemplos de entrenamiento, cada uno marcado como perteneciente a una de
dos categorías, un algoritmo de entrenamiento construye un modelo que asigna
nuevos ejemplos en una categoría u otra

e. ¿Qué y cuáles tipos de kernels tiene una SVM?


Lineal
Polinómico
Función de base radial (RBF)
Sigmoide

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

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


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

Dilatación=imdilate(Filtro1,se3) Dilata la imagen binaria o en escala de grises, devolviendo la


imagen dilatada, .

Figure;

Imshow(dilatación1) muestra la imagen dilatacion1 en escala de grises

[Lo, num]=bwlabel(dilatación1) devuelve una matriz de etiquetas

Prop=regionprops(Lo); Regionprops es una función que sirve para el procesamiento morfológico


de una imagen

Figure;

Imshow(Lo) Muestra la figura Lo

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

Etiqueta imágenes binarias en 2-D

c. ¿Qué valor se obtiene en las variables “Lo” y en “num”?

bwlabel(___) devuelve una matriz de etiquetas

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


Regionprops es una función para el procesamiento morfológico de una imagen, la función cuenta
el número de objetos de una imagen y ubica su posición dentro de la misma.

%Jose Ricardo Lopez


%2020
%16-04
%Semestre 08

clc;
clear all;
close all;

Comunicacion1=imread('compu1.jpg');
GrayComunicacion1=rgb2gray(Comunicacion1);
figure;
imshow(GrayComunicacion1);
GrayComunicacion1=im2double(GrayComunicacion1);
figure

imhist(GrayComunicacion1);
Comunicacion1=im2double(Comunicacion1);
figure;
imshow(Comunicacion1)

Comunicacion2=imread('compu2.jpg');
GrayComunicacion2=rgb2gray(Comunicacion2);
figure;
imshow(GrayComunicacion2);
GrayComunicacion2=im2double(GrayComunicacion2);
figure;
imhist(GrayComunicacion2);
Comunicacion2=im2double(Comunicacion2);
figure;
imshow(Comunicacion2)

Comunicacion3=imread('compu3.jpg');
GrayComunicacion3=rgb2gray(Comunicacion3);
figure;
imshow(GrayComunicacion3);
GrayComunicacion3=im2double(GrayComunicacion3);
figure;
imhist(GrayComunicacion3);
Comunicacion3=im2double(Comunicacion3);
figure;
imshow(Comunicacion3)

Comunicacion4=imread('celu4.jpg');
GrayComunicacion4=rgb2gray(Comunicacion4);
figure;
imshow(GrayComunicacion4);
GrayComunicacion4=im2double(GrayComunicacion4);
figure;
imhist(GrayComunicacion4);
Comunicacion4=im2double(Comunicacion4);
figure;
imshow(Comunicacion4)

Comunicacion5=imread('celu5.jpg');
GrayComunicacion5=rgb2gray(Comunicacion5);
figure;
imshow(GrayComunicacion5);
GrayComunicacion5=im2double(GrayComunicacion5);
figure;
imhist(GrayComunicacion5);
Comunicacion5=im2double(Comunicacion5);
figure;
imshow(Comunicacion5)

Comunicacion6=imread('celu6.jpg');
GrayComunicacion6=rgb2gray(Comunicacion6);
figure;
imshow(GrayComunicacion6);
GrayComunicacion6=im2double(GrayComunicacion6);
figure;
imhist(GrayComunicacion6);
Comunicacion6=im2double(Comunicacion6);
figure;
imshow(Comunicacion6)

umbral=0.5;
binComunicacion1=im2bw(Comunicacion1,umbral);
binComunicacion1=~binComunicacion1;
figure;
imshow(binComunicacion1)

binComunicacion2=im2bw(Comunicacion2,umbral);
binComunicacion2=~binComunicacion2;
figure;
imshow(binComunicacion2)

binComunicacion3=im2bw(Comunicacion3,umbral);
binComunicacion3=~binComunicacion3;
figure;
imshow(binComunicacion3)

binComunicacion4=im2bw(Comunicacion4,umbral);
binComunicacion4=~binComunicacion4;
figure;
imshow(binComunicacion4)

binComunicacion5=im2bw(Comunicacion5,umbral);
binComunicacion5=~binComunicacion5;
figure;
imshow(binComunicacion5)

binComunicacion6=im2bw(Comunicacion6,umbral);
binComunicacion6=~binComunicacion6;
figure;
imshow(binComunicacion6)

numpixels=500;
Filtro1=bwareaopen(binComunicacion1, numpixels);
figure;
imshow(Filtro1)

Filtro2=bwareaopen(binComunicacion2, numpixels);
figure;
imshow(Filtro2)

Filtro3=bwareaopen(binComunicacion3, numpixels);
figure;
imshow(Filtro3)

Filtro4=bwareaopen(binComunicacion4, numpixels);
figure;
imshow(Filtro4)

Filtro5=bwareaopen(binComunicacion5, numpixels);
figure;
imshow(Filtro5)

Filtro6=bwareaopen(binComunicacion6, numpixels);
figure;
imshow(Filtro6)

se3=strel('line',8,3);
dilatacion1=imdilate(Filtro1,se3);
dilatacion2=imdilate(Filtro2,se3);
dilatacion3=imdilate(Filtro3,se3);
dilatacion4=imdilate(Filtro4,se3);
dilatacion5=imdilate(Filtro5,se3);
dilatacion6=imdilate(Filtro6,se3);
figure;
imshow(dilatacion1);
imshow(dilatacion2);
imshow(dilatacion3);
imshow(dilatacion4);
imshow(dilatacion5);
imshow(dilatacion6);

[Lo1, num1]=bwlabel(dilatacion1);
[Lo2, num2]=bwlabel(dilatacion2);
[Lo3, num3]=bwlabel(dilatacion3);
[Lo4, num4]=bwlabel(dilatacion4);
[Lo5, num5]=bwlabel(dilatacion5);
[Lo6, num6]=bwlabel(dilatacion6);
prop1=regionprops(Lo1);
prop2=regionprops(Lo2);
prop3=regionprops(Lo3);
prop4=regionprops(Lo4);
prop5=regionprops(Lo5);
prop6=regionprops(Lo6);
figure;
imshow(Lo1);
imshow(Lo2);
imshow(Lo3);
imshow(Lo4);
imshow(Lo5);
imshow(Lo6);

MinArea1=min([prop1.Area]);
MaxArea1=max([prop1.Area]);
MinArea2=min([prop2.Area]);
MaxArea2=max([prop2.Area]);
MinArea3=min([prop3.Area]);
MaxArea3=max([prop3.Area]);
MinArea4=min([prop4.Area]);
MaxArea4=max([prop4.Area]);
MinArea5=min([prop5.Area]);
MaxArea5=max([prop5.Area]);
MinArea6=min([prop6.Area]);
MaxArea6=max([prop6.Area]);

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 de Clasificación Clasificación


objetos en la Área máxima Área mínima
imagen
SVM Experto

Imagen de entrenamiento –
3 84630 1583 1 1
Computador1

Imagen de entrenamiento –
3 62740 1462 1 1
Computador 2

Imagen de entrenamiento –
3 38468 16798 1 1
Computador 3

Imagen de entrenamiento –
1 48421 48421 0 0
Celular 1
Imagen de entrenamiento –
1 36105 36105 0 0
Celular 2

Imagen de entrenamiento –
1 21291 21291 0 0
Celular 3

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

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
%Jose Ricardo Lopez
%2020
%16-04
%Semestre 08

clc;
clear all;
close all;

Comunicacion1=imread('compu4.jpg');
GrayComunicacion1=rgb2gray(Comunicacion1);
figure;
imshow(GrayComunicacion1);
GrayComunicacion1=im2double(GrayComunicacion1);
figure

imhist(GrayComunicacion1);
Comunicacion1=im2double(Comunicacion1);
figure;
imshow(Comunicacion1)

Comunicacion2=imread('celu1.jpg');
GrayComunicacion2=rgb2gray(Comunicacion2);
figure;
imshow(GrayComunicacion2);
GrayComunicacion2=im2double(GrayComunicacion2);
figure;
imhist(GrayComunicacion2);
Comunicacion2=im2double(Comunicacion2);
figure;
imshow(Comunicacion2)

Comunicacion3=imread('compu5.jpg');
GrayComunicacion3=rgb2gray(Comunicacion3);
figure;
imshow(GrayComunicacion3);
GrayComunicacion3=im2double(GrayComunicacion3);
figure;
imhist(GrayComunicacion3);
Comunicacion3=im2double(Comunicacion3);
figure;
imshow(Comunicacion3)

Comunicacion4=imread('celu2.jpg');
GrayComunicacion4=rgb2gray(Comunicacion4);
figure;
imshow(GrayComunicacion4);
GrayComunicacion4=im2double(GrayComunicacion4);
figure;
imhist(GrayComunicacion4);
Comunicacion4=im2double(Comunicacion4);
figure;
imshow(Comunicacion4)

Comunicacion5=imread('compu6.jpg');
GrayComunicacion5=rgb2gray(Comunicacion5);
figure;
imshow(GrayComunicacion5);
GrayComunicacion5=im2double(GrayComunicacion5);
figure;
imhist(GrayComunicacion5);
Comunicacion5=im2double(Comunicacion5);
figure;
imshow(Comunicacion5)

Comunicacion6=imread('celu3.jpg');
GrayComunicacion6=rgb2gray(Comunicacion6);
figure;
imshow(GrayComunicacion6);
GrayComunicacion6=im2double(GrayComunicacion6);
figure;
imhist(GrayComunicacion6);
Comunicacion6=im2double(Comunicacion6);
figure;
imshow(Comunicacion6)

umbral=0.5;
binComunicacion1=im2bw(Comunicacion1,umbral);
binComunicacion1=~binComunicacion1;
figure;
imshow(binComunicacion1)

binComunicacion2=im2bw(Comunicacion2,umbral);
binComunicacion2=~binComunicacion2;
figure;
imshow(binComunicacion2)

binComunicacion3=im2bw(Comunicacion3,umbral);
binComunicacion3=~binComunicacion3;
figure;
imshow(binComunicacion3)

binComunicacion4=im2bw(Comunicacion4,umbral);
binComunicacion4=~binComunicacion4;
figure;
imshow(binComunicacion4)

binComunicacion5=im2bw(Comunicacion5,umbral);
binComunicacion5=~binComunicacion5;
figure;
imshow(binComunicacion5)

binComunicacion6=im2bw(Comunicacion6,umbral);
binComunicacion6=~binComunicacion6;
figure;
imshow(binComunicacion6)

numpixels=500;
Filtro1=bwareaopen(binComunicacion1, numpixels);
figure;
imshow(Filtro1)

Filtro2=bwareaopen(binComunicacion2, numpixels);
figure;
imshow(Filtro2)

Filtro3=bwareaopen(binComunicacion3, numpixels);
figure;
imshow(Filtro3)

Filtro4=bwareaopen(binComunicacion4, numpixels);
figure;
imshow(Filtro4)

Filtro5=bwareaopen(binComunicacion5, numpixels);
figure;
imshow(Filtro5)

Filtro6=bwareaopen(binComunicacion6, numpixels);
figure;
imshow(Filtro6)

se3=strel('line',8,3);
dilatacion1=imdilate(Filtro1,se3);
dilatacion2=imdilate(Filtro2,se3);
dilatacion3=imdilate(Filtro3,se3);
dilatacion4=imdilate(Filtro4,se3);
dilatacion5=imdilate(Filtro5,se3);
dilatacion6=imdilate(Filtro6,se3);
figure;
imshow(dilatacion1);
imshow(dilatacion2);
imshow(dilatacion3);
imshow(dilatacion4);
imshow(dilatacion5);
imshow(dilatacion6);

[Lo1, num1]=bwlabel(dilatacion1);
[Lo2, num2]=bwlabel(dilatacion2);
[Lo3, num3]=bwlabel(dilatacion3);
[Lo4, num4]=bwlabel(dilatacion4);
[Lo5, num5]=bwlabel(dilatacion5);
[Lo6, num6]=bwlabel(dilatacion6);
prop1=regionprops(Lo1);
prop2=regionprops(Lo2);
prop3=regionprops(Lo3);
prop4=regionprops(Lo4);
prop5=regionprops(Lo5);
prop6=regionprops(Lo6);
figure;
imshow(Lo1);
imshow(Lo2);
imshow(Lo3);
imshow(Lo4);
imshow(Lo5);
imshow(Lo6);

MinArea1=min([prop1.Area]);
MaxArea1=max([prop1.Area]);
MinArea2=min([prop2.Area]);
MaxArea2=max([prop2.Area]);
MinArea3=min([prop3.Area]);
MaxArea3=max([prop3.Area]);
MinArea4=min([prop4.Area]);
MaxArea4=max([prop4.Area]);
MinArea5=min([prop5.Area]);
MaxArea5=max([prop5.Area]);
MinArea6=min([prop6.Area]);
MaxArea6=max([prop6.Area]);

Cantidad de Clasificación Clasificación


objetos en la Área máxima Área mínima
imagen
SVM Experto

Imagen de prueba –
3 47197 10750 1 1
Computador 1

Imagen de prueba –
1 42014 42014 0 0
Celular 1

Imagen de prueba –
3 46771 2827 1 1
Computador 2

Imagen de prueba –
1 39809 39809 0 0
Celular 2

Imagen de prueba –
1 59236 59236 0 1
Computador 3

Imagen de prueba –
1 59702 59702 0 0
Celular 3
 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 entrenamiento.xlsx y la tabla
que contiene las características nuevas contenidas en prueba.xlsx.

 Explique cada línea del código.


clc; Esta función MATLAB borra todo el texto de la ventana de comandos, lo que da como
resultado una pantalla clara.

clear all; Esta función MATLAB borra cachés para todos los objetos

close all; Esta función MATLAB intenta cerrar todas las conexiones a todos los diccionarios de
datos que están abiertos.

%Jose Ricardo Lopez

%2020

%16-04

%Semestre 08

datos=xlsread('entrenamiento.xlsx'); Leer un archivo de hoja de cálculo de Microsoft Excel


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);

%Entrenamiento Máquina - % Jose Ricardo Lopez

svmStruct=fitcsvm(caracteristicas,entrenamiento,'standardize',true,'KernelFunction','linear','Ker
nelScale','auto');

Fitcsvmv entrena o valida de forma cruzada un modelo de máquina de vectores de un 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 archivo de hoja de cálculo.

xprueba=prueba(1:end,1:3);

clasificacion=predict(svmStruct,xprueba);

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 de objetos en la Área máxima


imagen
Imagen de entrenamiento – Computador1
Imagen de entrenamiento – Computador 2
Imagen de entrenamiento – Computador 3

Imagen de entrenamiento – Celular 1

Imagen de entrenamiento – Celular 2

Imagen de entrenamiento – Celular 3


I. RESULTADOS Y CONCLUSIONES

En el anterior trabajo se presentaron los conceptos de tratamiento de imágenes,


por medio de ejercicio y empleando el software Matlab se buscó la aplicación de
los conocimientos adquiridos, la importación de conocer que realiza cada línea del
código y las sentencia empleadas, en la imagen utilizado como ejemplo.

II. BIBLIOGRAFÍA

González and Woods. Digital Image Processing, 3rd. Ed. 2018. Introducción a las
imágenes digitales.
https://alojamientos.us.es › gtocoma › pid › tema1-2

Rodríguez Hugo. 2003. la imagen digital y el código binario. Barcelona, España.


iniciación a la imagen digital.

https://www.hugorodriguez.com/cursos/curso-idigital_01.htm

También podría gustarte