Você está na página 1de 5

-Universidad ECCI.

Sebastián Novoa, Ortega Carlos, Laboratorio #3 1

Laboratorio no 3
Matlab procesamiento de imágenes

Ortega Téllez Carlos Eduardo, Novoa Romero Sebastian


Carlose.ortegat@ecci.edu.co (61868) sebastian.novoar|@ecci.edu.co (60995)
Herramientas Computacionales para Robótica y Automatización- Universidad ECCI

Abstract—This laboratory has as objective to perform different


image processing tasks through MATLAB; by using different a) MÁSCARAS
code and functions which will help to make color modifications El realce espacial es un procesamiento matemático sobre los
like grayscale and RGB scale mask on a specific image. pixeles de una imagen, con el fin de resaltar ciertos tipos de
relaciones. Para esto se usan las llamadas máscaras de
convolución o filtros espaciales, que son ventanas con valores
Índice de Términos— MATLAB, Procesamiento de imágenes, dados por el tipo de relación espacial que se quiere resaltar. Las
Mascara, GUIDE, Double, Matriz, Color RGB, Escala de máscaras se pueden definir manualmente (como matriz).
grises.
Por ejemplo:

>> w = 1/9*[1 1 1;1 1 1;1 1 1]; o bien


>> w = 1/9*ones(3);
I. INTRODUCTION

E N este laboratorio se hablara de los diferentes


procesamientos trabajados en clase, junto con la
identificación de los colores (Azul, Verde); además para
Máscaras implementadas en Matlab:

obtener dichos procesamientos se debe contar con un código en


la plataforma de MATLAB; mediante el cual se vera las
diferentes operaciones y combinaciones necesarias para la
obtención de estos. Adicional a esto se profundizará en
conceptos esenciales como la importancia de Mascara en
procesamiento de imágenes, y la implementación que se
requiere para cargar una imagen desde la guía de MATLAB.

II. MARCO TEORICO

Procesamiento De Imágenes Con Matlab

MATLAB (abreviatura de MATrix LABoratory, "laboratorio


de matrices") es un software matemático que ofrece un entorno Imagen #1- Tabla de máscaras en Matlab,
de desarrollo integrado (IDE) con un lenguaje de programación http://personal.us.es/majiro/2014_10_10_clase2.pdf.
propio (lenguaje M). Está disponible para las plataformas de
Unix, Windows y Apple. Entre sus prestaciones básicas se
hallan: la manipulación de matrices, la representación de datos b) IMPLEMENTACION DE LA CARGA DE UNA
y funciones, la implementación de algoritmos, la creación de IMAGEN DESDE LA GUÍA DE MATLAB
interfaces de usuario (GUI) y la comunicación con programas Lo primero que se debe hacer para la edición de fotografías, es
en otros lenguajes. Además, se pueden ampliar las capacidades guardar el programa, teniendo en cuenta que tanto las imágenes
de MATLAB con las cajas de herramientas (toolkits o que se vallan a trabajar y el documento con el código se
toolboxes). Para el caso de manipulación de imágenes se encuentren en una misma carpeta, para evitar inconvenientes a
emplea el toolbox “Image Processing”. la hora de realizar las pruebas.

GUIDE es un entorno de programación visual disponible en


-Universidad ECCI. Sebastián Novoa, Ortega Carlos, Laboratorio #3 2

MATLAB para realizar y ejecutar programas que necesiten


ingreso continuo de datos. Tiene las características básicas de
los programas visuales como Visual Basic o Visual C++.

INICIO

Para iniciar un nuevo proyecto, lo podemos hacer de dos


maneras:

 Ejecutando la siguiente instrucción en la ventana de


comandos:
>> guide
Imagen # 4 -Entorno de diseño de GUI,
 Haciendo clic en el icono que muestra la figura: https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB_G
UIDE.pdf

La interfaz grafica cuenta con las siguientes herramientas:

Imagen # 2 -Icono GUIDE, Imagen # 5 interfaz gráfica,


https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB_G https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB_G
UIDE.pdf UIDE.pdf

Se presenta el siguiente cuadro de dialogo: En la siguiente tabla muestra una descripción de los
componentes:

Imagen # 3- Ventana de inicio de GUIDE

Donde se elegirá la opción Blank GUI (Default), siendo una


Imagen # 6,
interfaz grafica de usuario en blanco (viene predeterminada),
https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB_G
presenta un formulario nuevo, en el cual se puede diseñar un UIDE.pdf
programa.
FUNCIONAMIENTO DE UNA APLICACIÓN GUI
Después de elegir dicha opción se tiene:
 Una aplicación GUIDE consta de dos archivos: .m y
fig. El archivo .m es el que contiene el código con las
correspondencias de los botones de control de la
interfaz y el archivo .fig contiene los elementos
-Universidad ECCI. Sebastián Novoa, Ortega Carlos, Laboratorio #3 3

gráficos.

 Cada vez que se adicione un nuevo elemento en la


interfaz gráfica, se genera automáticamente código en
el archivo .m.

 Después de crear una ventana GUI se podrá arrastrar


los botones de procesos y un espacio donde se
evidenciarán los cambios de las imágenes.

Imagen #9 - Fotografía de la imagen original.

Proceso 1
Se declara las siguientes funciones, la cual sirve para ampliar la
imagen de su estado original, mostrada en la siguiente imagen.

Código:
a=imread('guacamayos.jpg'); % Lectura de la imagen
colormap(gray(256)); % Operación de ampliación
image(a) % Imagen original
Imagen #7- ventana de visualización de procesos en imágenes.

Automáticamente habilita los espacios, donde se podrá


completar los códigos y las diferentes operaciones de los
procesos; cómo se puede ver en la siguiente imagen.

Imagen #10 - Proceso 1, ampliación de la imagen original.

Proceso 2
En este proceso el código servirá para crear una imagen de
intensidad en escala de gris a partir de una imagen RGB.
Imagen #8- Habilitación de los códigos para los procesos.

La función rgb2gray transforma una imagen a color de grises.


III. MARCO PRECEDENTIAL
Código
a = imread('guacamayos.jpg'); % lectura de una imagen
Imagen Original gris = rgb2gray(a); %se muestra niveles de gris por defecto
imshow(gris) % Imagen en escala de grises
La imagen para leer debe encontrarse en la carpeta de trabajo
de Matlab. Los formatos de imagen soportados por Matlab son:
TIFF, JPEG, GIF, BMP, PNG, XWD.

A continuación, se declara las variables:


a=imread; ('guacamayos.jpg'); % Lectura de una imagen
imshow(a); % Sirve para visualizar la imagen original.
-Universidad ECCI. Sebastián Novoa, Ortega Carlos, Laboratorio #3 4

original; para ello se debe aplicar una operación matemática


junto con una comparación binaria, de esta forma se puede
observar en la siguiente imagen y su respectivo código:

Código:

a = imread('guacamayos.jpg');
imR = double(a(:,:,1)); %Divide en matriz de escala de rojos
imG = double(a(:,:,2)); % Divide en matriz de escala de verdes
imB = double(a(:,:,3)); % Divide en matriz de escala de azules
ima = imR - imG - imB; % Operación para obtener escala de
rojo en la imagen.
imagen_b = ima > 20; % 0-255 comparación binaria
imagen_b_f = medfilt2(imagen_b); %Filtro medio
Imagen # 11 - Escala de grises
mascara = 1-imagen_b_f; %Mascara para imágenes: opuesto
de la imagen binaria
Proceso 3 gris = rgb2gray(a); % Escala de grises aplicada a la imagen
Imagen_R = (double(gris)/255); % Mantiene la escala de rojos
En este proceso se buscará obtener una imagen a blanco y en la imagen
negro; una imagen de color RGB se representa por tres matrices Imagen_G = (double(gris).*mascara/255); % Aplica la
bidimensionales, correspondientes a los planos R, G y B. Para mascara a escala de verdes
obtener los planos RGB se ejecutan los comandos. El tipo de Imagen_B = (double(gris).*mascara/255); % Aplica la
dato matriz, que contendrá una imagen puede ser de varios tipos mascara a escala de azules
(según el tipo de dato de cada píxel): Imagen_final = cat(3,Imagen_R,Imagen_G,Imagen_B); % Se
agrupan o concatenan las matrices para obtener la imagen final
Double: Cambia el formato entero sin signo de 8 bits (unit8) de imshow(Imagen_final) % Imagen transformada solamente a
la imagen a un formato decimal. escala de rojo.

La imagen binaria: es una imagen en blanco y negro. Cada


píxel tiene asignado un valor lógico de 0 o 1.

Código:
a=imread('guacamayos.jpg'); % lectura de una imagen
imR = double(a(:,:,1)); %Divide matrices de los colores
imG = double(a(:,:,2));
imB = double(a(:,:,3));
ima = imR - imG - imB; %Negativo de rojo
imshow(ima) %imagen en escala a blanco y negro

Imagen # 13 - fotografía visualizando el color Rojo.

Proceso #5
En esta ocasión, para el proceso se buscará separar los demás
colores que tenga la imagen original, mostrando únicamente el
color Verde; para ello se debe aplicar una operación matemática
junto con una comparación binaria, de esta forma se puede
observar en el siguiente código y su respectiva imagen:

Código:
a = imread('guacamayos.jpg');
imR = double(a(:,:,1)); %Divide matrices de los colores
Imagen # 12 - Fotografía en Blanco y Negro. imG = double(a(:,:,2));
imB = double(a(:,:,3));
ima = imG - imR - imB; %Operación para obtener el color
verde
Proceso 4
imagen_b = ima > 10; %0-255 comparación binaria
Para este proceso se buscará separar los demás colores,
imagen_b_f = medfilt2(imagen_b); %Filtro
mostrando únicamente el color rojo que tenga la imagen
-Universidad ECCI. Sebastián Novoa, Ortega Carlos, Laboratorio #3 5

mascara = 1-imagen_b_f; %Mascara para imágenes: opuesto


de la imagen binaria
gris = rgb2gray(a); % Escala de grises
Imagen_R = (double(gris).*mascara/255);
Imagen_G = (double(gris)/255);
Imagen_B = (double(gris).*mascara/255);
Imagen_final = cat(3,Imagen_R,Imagen_G,Imagen_B);
imshow(Imagen_final) %Imagen transformada, solamente el
color Verde

Imagen #15- fotografía visualizando el color Azul.

IV. CONCLUSIONES

[1] El procesamiento de imágenes es una herramienta que no


solo es de utilidad para trabajadores gráficos o audiovisuales,
ya que en base a los códigos vistos se puede orientar estos
resultados para hacer un reconocimiento en diferentes procesos
industriales (profundizando en la programación) para lograr
automatizar procesos que lo hagan posible dadas sus
Imagen #14 - fotografía visualizando el color Verde.
condiciones.

[2] A partir del uso de diferentes máscaras, se puede lograr en


Proceso 6 este caso que en imágenes estáticas se pueda enfocar en
Para el proceso final, el color que se busca resaltar es el Azul; secciones especificas basado en respectivos colores siendo de
donde se aplicara una serie de operaciones, y matrices para ayuda para la identificación de objetos o figuras.
dividir los colores de su imagen original, el cual se puede ver
en el siguiente código e imagen. [3] Gracias a la función de concatenar se puede lograr la
reconstrucción de la imagen para mostrar las secciones
Código: deseadas (Rojo, Verde o Azul) dejando en una escala de grises
a = imread('guacamayos.jpg'); todo lo que no cumpla con la condición.
imR = double(a(:,:,1)); %Divide matrices de los colores
imG = double(a(:,:,2)); V. REFERENCIAS
imB = double(a(:,:,3));
ima = imB - imR - imG; %Operación para obtener el color
Azul Belén Medrano Garfia, Dpto. Matemática Aplicada 1
imagen_b = ima > 10; %0-255 comparación binaria http://personal.us.es/majiro/2014_10_10_clase2.pdf
imagen_b_f = medfilt2(imagen_b); %Filtro
mascara = 1-imagen_b_f; %Mascara para imágenes: opuesto Crear Máscara Dentro De La Imagen (1994-2019) The
de la imagen binaria MathWorks,
gris = rgb2gray(a); % Escala de grises Inc.https://la.mathworks.com/help/images/ref/imroi.createmas
Imagen_R = (double(gris).*mascara/255); k.html
Imagen_G = (double(gris).*mascara/255);
Imagen_B = (double(gris)/255); Mabual de Interfaz de Usuario en Matlab, por: Diego Orlando
Imagen_final = cat(3,Imagen_R,Imagen_G,Imagen_B); Barragan Guerrero,
imshow(Imagen_final) %Transformación de imagen final de https://www.dspace.espol.edu.ec/bitstream/123456789/10740/
color Azul. 11/MATLAB_GUIDE.pdf

Você também pode gostar