Práctica 1 - 1958896 - JavierOsmarCovarrubiasBautista

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Laboratorio de Procesamiento Digital de Imagenes


Práctica 1

Docente: Ing. Alfredo Daniel Cortes Preciado

Alumno: Javier Osmar Covarrubias Bautista


Matricula: 1958896

Grupo: 308

Fecha: 21/02/2024 Dia y Hora: Miércoles, N3

Semestre: Enero – Junio 2024


Introducción

Entendemos como procesamiento digital de imágenes a el uso de una computadora


digital para procesar imágenes digitales mediante un algoritmo. En la década de 1960,
se desarrollaron muchas de las técnicas de procesamiento digital de imágenes en
lugares como Bell Laboratories, el Jet Propulsion Laboratory, la Universidad de Maryland,
etc. Estas técnicas se aplicaron a áreas como imágenes satelitales, conversión de
estándares de fotografía por cable, imágenes médicas, videoteléfonos, reconocimiento
de caracteres, etc.

El objetivo inicial por el que se desarrollaron estas técnicas era para mejorar la calidad
de las imágenes, especialmente para el ojo humano.

MATLAB es una plataforma de programación y calculo numérico utilizada por millones


de ingenieros y científicos para analizar datos, desarrollar algoritmos y crear modelos.
Esta plataforma combina un entorno de escritorio diseñado para procesos de análisis y
diseño iterativos con un lenguaje de programación que permite expresar matemáticas de
matrices y arreglos directamente. Además, nos proporciona herramientas como lo son
los toolboxes los cuales están desarrollados profesionalmente, rigurosamente probados
y completamente documentados. Estos toolboxes amplian las capaciades de MATLAB
en áreas como análisis de datos, gráficos, programación, creación de aplicaciones, etc.

El procesamiento digital de imágenes y MATLAB están estrechamente relacionados, ya


que MATLAB es una herramienta ampliamente utilizada para el procesamiento y análisis
de imágenes por las siguientes razones:

• Proporciona una variedad de funciones y herramientas especificas para el


procesamiento de imágenes. Estas incluyen operaciones básicas como filtrado,
segmentación, detección de bordes y transformaciones.
• Puedes cargar imágenes en MATLAB, manipular sus pixeles, aplicar filtros,
realizar análisis estadísticos y visualizar los resultados.
• Las funciones de procesamiento de imágenes en MATLAB te permiten realizar
tareas como mejora de imágenes, segmentación, detección de características,
transformaciones, reconocimiento de patrones y restauración.
Para esta actividad, el estudiante deberá hacer uso de sus conocimientos previos de
Matlab para obtener el histograma, la entropía y la correlación vertical o horizontal de
una imagen a color, dicha imagen deberá ser seleccionada por el estudiante a su criterio.
Esto con el fin de que el estudiante se familiarice un poco con el entorno de Matlab y
aprenda a como trabajar las capas de colores RGB de una imagen, además de que
entienda la utilidad de obtener los elementos antes mencionados de la imagen.

Contenido

1. Con el soporte de diferentes comandos, leer (imread) y mostrar (imshow) una imagen
en escala de grises. Si elige una imagen de Matlab por default, usar una diferente a
la de los ejercicios anteriores. Al guardar una imagen en el directorio de Matlab,
podemos leer y escribir (imwrite), por ejemplo, una imagen a color y guardarla en
escala de grises. Si decide seguir esta sugerencia, la figura debe estar como la de
peppers, a color y escala de grises.
2. Leer y mostrar una imagen a color.

Código:

Explicación:
1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el
archivo de MATLAB y la almacena en la variable Imagen_color. La imagen se
carga en su forma original, con todos los canales de color (rojo, verde y azul).
2. Seguido de esto la función “rgb2gray(‘Imagen_color’)” convierte la imagen a
escala de grisis. La variable Imagen_escala_de_grises ahora contiene la
versión en blanco y negro de la imagen original.
3. Ahora la función “fig = figure('Name', 'Mi Figura', 'NumberTitle', 'off')” crea una
figura, la cual se abre en una ventana aparte, y le da el nombre “Mi figura”.
4. La función “fig.Color = 'white'” establece el color de fondo de la figura en
blanco.
5. Ahora para mostrar la imagen hacemos uso de “subplot(1,2,1)” para dividir el
área de trazado en 1 fila y 2 columnas, y selecciona la primera subparcela.
6. La función “imshow(Imagen_color)” muestra la imagen a color en la primer
subparcela. Y la función “title('Imagen a color')” agrega un título a la misma.
7. Por otro lado, la función “set(gca, 'XColor', 'red', 'YColor', 'red')” cambia el color
de los ejes a rojo en la primera subparcela.
8. Ahora la función “subplot(1,2,2)” cambia a la segunda parcela, seguido de esto
la función “imshow(Imagen_escala_de_grises)” muestra la imagen en escala
de grises. Finalmente “title('Imagen en escala de grises')” agrega un titulo a la
segunda subparcela.

Resultado obtenido:
3. Obtener el histograma de las tres componentes de la imagen a color.
Código:

Explicación:
1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el
archivo de MATLAB y la almacena en la variable Imagen_normal.
2. A partir de la instrucción “figure” creamos una nueva figura.
3. Posteriormente hacer uso de la función “subplot(1,3,1)” para dividir el área de
trazado en 1 fila y 3 columnas, y selecciona la primera subparcela.
4. A partir de la función “imhist(Imagen_normal(:,:,1))” calculamos el histograma
para la imagen en escala de grises o para un canal especifico de una imagen
en color.
5. Repetimos los pasos 3 y 4 para los otros canales de color.
Resultado obtenido:

4. Calcular la entropía de las 3 componentes de la imagen del ejercicio 2.

Método 1
Código:
Explicación:
1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el archivo
de MATLAB y la almacena en la variable Imagen_color.
2. Ahora la función “imagesc(Imagen_color)” muestra la imagen en una figura.
Posteriorimente usamos la función “Imagen_color = Imagen_color(:)” convertimos
la imagen en un vector unidimensional (columna).
3. La función “p = imhist(Imagen_color)” calcula el histograma de la imagen. Por otro
lado la función “p( p == 0 ) = []” elimina los valores de histograma que son cero.
Seguido de esto usamos la función “p = p ./ numel(Imagen_color)” para normalizar
el histograma dividiendo cada valor por el numero total de pixeles en la imagen.
4. Por último, la función “E = round(-sum(p.*log2(p)), 3)” calcula la entropía de la
imagen.

Resultado obtenido:
Método 2
Código:

Explicación:
1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el archivo
de MATLAB y la almacena en la variable Imagen_color.
2. Las funciones “Imagen_colorRed = Imagen_color(:,:,1);, Imagen_colorGreen =
Imagen_color(:,:,2); y Imagen_colorBlue = Imagen_color(:,:,3)” extrae los
componentes de color rojo, verde y azul de la imagen original.
3. Seguido de esto hacemos uso de las funciones “entRed =
entropy(Imagen_colorRed);, entGreen = entropy(Imagen_colorGreen); y entBlue
= entropy(Imagen_colorBlue)” para calcular la entropía de cada componente de
color.
4. Por último, la función “T = table({'Red'; 'Green'; 'Blue'}, [entRed; entGreen;
entBlue], 'VariableNames', {'Componente', 'Entropia'})” crea una tabla con tres filas
(una para cada componente de color) y dos columnas: “Componente” y ”Entropia”.
Resultado Obtenido:

5. Mostrar al menos una de ambas, correlación horizontal o vertical de la imagen a color


(componentes R, G y B) de los ejercicios anteriores.

Método 1
Código:
Explicación:
1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el archivo
de MATLAB y la almacena en la variable Imagen_color.
2. Ahora con la función “P = double(Imagen_color)” convertimos la imagen en una
matriz de valores de punto flotante (doble precisión).
3. Seguido de esto hacemos uso de la función “x1 = double(P(:,1:end-1));” y “y1 =
double(P(:,2:end));” para extraer los componentes del canal rojo y verde de la
imagen respectivamente.
4. Se seleccionan 1000 pares de valores aleatorios de los componentes x e y. Se
calculan las medias (Ex y Ey), varianzas (Dx y Dy), covarianza(coxy) y coeficientes
de correlación (rxy) entre x e y.
5. Usando la función “plot(x, y)” graficamos los puntos (x, y) en un gráfico
bidimensional.
6. Después usamos la función “r_xy1 = corrcoef(x, y)” para calcular la matriz de
correlación entre x e y.
7. Finalmente, usando la función “x1 .* y1” multiplicamos elemento por elemento los
componentes x e y.
Resultado obtenido:
Método 2
Código:
Explicación:

1. Primeramente, la función “imread(‘Osmar.jpg’)” carga la imagen desde el archivo


de MATLAB y la almacena en la variable Imagen_color.
2. Después a través de la función “A = double(Imagen_color)” convertimos la imagen
en una matriz de valores de punto flotante (doble precisión). Esto permite realizar
cálculos matemáticos mas precisos con los valores de pixeles.
3. Ahora realizamos un análisis en tres direcciones: horizontal, vertical y diagonal:
• Horizontal: Se extraen los componentes de color rojo y verde de la imagen
y se seleccionan otros 3000 pares de valores aleatorios para los
componentes x e y.
• Vertical: Se extraen los componentes de color rojo y verde de la imagen
(transpuestos) y se seleccionan otros 3000 pares de valores aleatorios para
los componentes x e y.
• Diagonal: Se extraen los componentes de color rojo y verde de la imagen
(diagonal) y se seleccionan otros 3000 pares de valores aleatorios para los
componentes x e y.
4. Calculamos la matriz de correlación entre x e y para cada dirección.
5. Se crea una figura con tres subparcelas para mostrar los puntos (x, y) en cada
dirección (horizontal, vertical y diagonal).

Resultado obtenido:
Conclusión
Esta práctica me ha permitido desafiar y expandir mis conocimientos previos de Matlab,
específicamente en el ámbito del procesamiento digital de señales. He logrado
comprender e implementar funciones esenciales como imread e imshow, las cuales son
fundamentales para cargar y visualizar imágenes. Adicionalmente, he aprendido a utilizar
el comando rgb2gray para convertir imágenes a escala de grises. En este proceso,
descubrí y dominé nuevas funciones que me permitieron obtener el histograma, calcular
la entropía y determinar las correlaciones de una imagen. Estos conceptos, que eran
completamente nuevos para mí, han enriquecido mi comprensión sobre el análisis de
imágenes. He constatado que la plataforma de MATLAB es una herramienta poderosa y
versátil, no solo para extraer datos relevantes de una imagen, sino también para
manipular su paleta de colores (RGB). Esta experiencia ha reforzado mi apreciación por
MATLAB como una herramienta indispensable en el procesamiento de imágenes y
señales.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy