Laboratorio6(2)

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

Procesado Señales Multimedia

______________________________________________________

Laboratorio 6: Manejo y procesado básico


de imágenes
Última modificación: 10/12/15

Objetivos
En esta sexta sesión de laboratorio se busca:
a) Aplicar conocimientos sobre manipulación de imágenes con Octave.
b) Operaciones básicas sobre imágenes a color.

Organización
El alumno deberá seguir los pasos que se indican en el presente boletín y avisar a
su profesor de prácticas una vez vaya consiguiendo los hitos que se marcan.
Durante los últimos 20 minutos de la sesión, el profesor le suministrará un pequeño
test con preguntas que el alumno deberá responder acerca de la materia objeto de
evaluación. No olivide traer impresa la hoja de respuestas.

Manipulación de imágenes con Octave


Una imagen digital se representa mediante matrices bidimensionales de píxeles. En el
caso de imágenes en escala de grises, sólo será necesaria una matriz que almacena
la intensidad luminosa registrada para cada punto de la imagen. Para una imagen a
color, serán necesarias 3 matrices con información de las diferentes bandas de color
(por ejemplo, RGB).

En Octave existen los siguientes comandos para manipular una imagen:

1. Imread: Lee un fichero de imagen (múltiples formatos)

Ejemplo: handle = imread(‘foto.jpg’);

2. Imshow: Muestra la imagen en una figura

Ejemplo: imshow(handle)

3. Imwrite: Escribe la imagen en un fichero

1
Laboratorio 6: Manejo y procesado básico de imágenes Página 2

Ejemplo: imwrite(handle, ‘fichero.bmp’);

En todos los casos handle representa una matriz de dimensiones M x N x C (M filas y


N columnas y profundidad C). C será 1 para imágenes en escala de grises y 3 para
imágenes a color.

Nota: Al pasar como parámetro una matriz de una imagen (handle) al comando size,
este devuelve la cantidad de filas, columnas y la profundidad (número de canales) de
la imagen.

Para conocer el valor de intensidad luminosa asociada a un píxel determinado de la


imagen bastará con acceder a la posición correspondiente de la matriz (matrices si es
a color) de la imagen. De esta forma, suponiendo que se ha leído una imagen
monocromática con el comando A = imread(‘EjemploMono.jpg’); el siguiente comando
A(6, 3) devolverá el valor de intensidad luminosa (escala de gris) registrado para el
píxel que ocupa la sexta fila y la tercera columna.

Acceso a píxeles (apartado Lab6_1)

Utilizando el fichero lab6.m complete el apartado 1 para generar una nueva imagen
donde cada valor del píxel posea el valor “complementario” (máximo nivel de gris –
valor original) de la imagen original pasada como parámetro.

lab6.m [mc]

2
Procesado Señales Multimedia
______________________________________________________

Nota: La imagen generada no debe sobreescribir el fichero original, por lo que deberá
almacenarse con otro nombre de fichero distinto al original (por ejemplo,
imagen_complementaria)

Cargue ambas imágenes y rellene la siguiente tabla:

Píxel Original Complementaria

(1, 12)

(10, 15)

Muestre ambas imágenes y conteste las siguientes cuestiones:


¿Se ha modificado la imagen original?
¿Qué relación hay entre ambas imágenes?

Rellene el apartado HR1 de la hoja de respuestas

Cálculo del histograma (apartado Lab6_2)


lab6.m [m]
histogram.m [c]

El histograma representa la distribución de niveles de grises de una imagen, y se


calcula evaluando la frecuencia estadística, o número de veces que cada nivel de gris
aparece en la imagen.

Para calcular el histograma de una imagen será necesario realizar los siguientes
pasos:

1. Crear una estructura (array/vector) de tamaño igual al número máximo de


niveles.

2. Establecer todos los elementos de la estructura anterior a 0.

3. Recorrer la imagen píxel a píxel, tomar el nivel de gris del píxel actual, e
incrementar la posición de la estructura correspondiente a dicho nivel de gris.

Utilizando el fichero lab6.m complete el apartado 2 para generar el histograma de los


ficheros de tests. Represente el histograma obtenido para la imagen “helicóptero.bmp”.

3
Laboratorio 6: Manejo y procesado básico de imágenes Página 4

Genere y represente el histograma de la imagen “complementaria”.

¿Qué relación aprecia entre ambos histogramas?

¿Es coherente con los procesamientos realizados en el apartado anterior?

Rellene el apartado HR2 de la hoja de respuestas

Transformación de imagen en blanco y negro a color (apartado Lab6_3)


lab6.m [m]
BN2Color.m [c]
TransformationCurve [c] ← Función incluida en BN2Color.m

Como se ha mencionado anteriormente, una imagen a color se representa como una


matriz multidimensional (fila, columna, canal) compuesta de matrices bidimensionales.
Cada una de las matrices bidimensionales se denomina canal del color. En este
formato un píxel estará formado por tres componentes (RGB):

IN = imread(“imagencolor.jpg”);

r = IN(i, j, 1); g = IN(i, j, 2); b = IN(i, j, 3);

4
Procesado Señales Multimedia
______________________________________________________

Por tanto, para convertir una imagen en niveles de grises a color será necesario crear
tres matrices bidimensionales (RGB) y asignar a cada píxel de estas matrices un valor
definido a partir del nivel de gris original. Por ejemplo, la siguiente figura muestra una
posible asignación de niveles de grises a valores de los canales de color:

0.8

0.6

0.4

0.2

0
0 50 100 150 200 250 300

Utilizando el fichero lab6.m complete el apartado 3 para generar una imagen a color a
partir de la imagen en niveles de grises utilizando la asignación representada en la
figura anterior. Complete la siguiente tabla para un desplazamiento entre curvas R,G,B
de 30 niveles:

Píxel Rojo Verde Azul

(1, 7)

(10, 12)

Rellene el apartado HR3 de la hoja de respuestas

Canales en imágenes a color (apartado Lab6_4)

Complete el código de lab6.m apartado 4 para que a partir de una imagen a color se
generen tres imágenes también a color con la información de los canales rojo, verde, y
azul. Complete el código que se le indica en lab5.m y compruebe los resultados del
mismo para diferentes ficheros: mezcla.jpg, cuado.bmp, figuras_geometricas.jpg,

5
Laboratorio 6: Manejo y procesado básico de imágenes Página 6

circramp.jpg. Rellene los siguientes recuadros con cada una de las imágenes
generadas (mezcla.jpg):

¿Podría obtener la imagen original a partir de las imágenes obtenidas? ¿Cómo?

Rellene el apartado HR4 de la hoja de respuestas

Histograma de canales de color (apartado Lab6_5)


lab6.m [m]
Canales.m [c]

Cada una de las componentes de la imagen a color puede ser tratada como una
imagen que contiene información de un solo canal. Por tanto, se puede aplicar el
cálculo de histograma a cada una de las componentes por separado.

Modifique el apartado 5 de lab6.m para que utilizando la función desarrollada en el


apartado 2, rellene los valores solicitados del histograma para las imágenes que se
indican en la siguiente tabla.

Cuadro.bmp figuras_geometricas.jpg
Canal R, ng = 237

Canal G, ng=27

Canal B, ng=36

6
Procesado Señales Multimedia
______________________________________________________

Rellene el apartado HR5 de la hoja de respuestas

Transformación de color RGB a brillo (apartado Lab6_6)


lab6.m [m]
rgb2gray.m [c]

La transformación entre los espacios RGB y XYZ ofrece uno de los procedimientos
más extendidos para el cálculo del brillo percibido por un color con coordenadas (r, g,
b):

Y = 0,299 r + 0,587 g + 0,114 b

Complete el código de lab6.m apartado 6 para generar una imagen en niveles de


grises a partir de una imagen en color mediante el cálculo de brillo. Utilice el programa
desarrollado para transformar las imágenes “cuadro.bmp” y “pijama.bmp” y complete la
siguiente tabla:
Y Y
Píxel
Cuadro.bmp Pijama.bmp

(1, 17)

(12, 12)

Rellene el apartado HR6 de la hoja de respuestas

Transformación de color RGB a HLS (apartado Lab6_7)


lab6.m [mc]
normaliza.m [c]
rgb2hls.m [c]

HLS define un modelo de color en términos de sus componentes constituyentes. El


modelo HLS se representa gráficamente como un cono doble o un doble hexágono.
Los dos vértices en el modelo HLS se corresponden con el blanco y el negro, el ángulo
se corresponde con el matiz, la distancia al eje con la saturación y la distancia al eje
blanco-negro se corresponde a la luminancia. Este modelo es una deformación no
lineal del espacio de color RGB.

El histograma de la componente H representa la distribución de color de la imagen, y


su estudio revela cuáles son los colores más frecuentes o dominantes en la imagen.
Para su evaluación, es necesario transformar píxel a píxel la imagen RGB original y
7
Laboratorio 6: Manejo y procesado básico de imágenes Página 8

cuantizar la tinta h en un número significativo de colores, por ejemplo 360. De este


modo se ofrece una distribución similar al rango en grados del parámetro.

Complete el código que se indica para realizar la transformación de color RGB a HLS
según el algoritmo descrito en teoría. Emplee el programa desarrollado en el apartado
2 para representar el histograma de la componente H de las imágenes “cuadro.bmp” y
“pijama.bmp”:

Rellene el apartado HR7 de la hoja de respuestas

8
Procesado Señales Multimedia
______________________________________________________

Cuantización del espectro HLS (apartado Lab6_8)


lab6.m [m]
extract.m [m]
hlsquant.m [c]

Cuantizando el espacio HLS pueden generarse etiquetas para cada color. Por ejemplo,
la carta de colores puede cuantizarse para etiquetar los colores por su cromática más
relevante (ángulo).

Complete el código de lab6.m apartado 8 para realizar la cuantización del espacio HLS
según el algoritmo descrito en teoría. Describa con palabras la cuantización de color
para 8 niveles

Compruebe los resultados de los siguientes valores:

ColorNum = 12, lumNum = 4, satNum = 8

h l s H L S

14 0,1 0,2

30 0,5 0,8

340 0,75 0,4

9
Laboratorio 6: Manejo y procesado básico de imágenes Página 10

colorNum = 24, lumNum = 16, satNum = 4

60 0,1 0,2

90 0,5 0,8

122 0,75 0,4

Rellene el apartado HR8 de la hoja de respuestas

10
Procesado Señales Multimedia
______________________________________________________

HOJA DE RESPUESTAS DEL LABORATORIO 6


Apellidos y nombre:_____________________________________
HR1)

Píxel Original Complementaria

(1, 12)

(10, 15)

¿Se ha modificado la imagen original?

¿Qué relación hay entre ambas imágenes?

HR2)

11
Laboratorio 6: Manejo y procesado básico de imágenes Página 12

¿Qué relación aprecia entre ambos histogramas?

¿Es coherente con los procesamientos realizados en el apartado anterior?

HR3)

Píxel Rojo Verde Azul

(1, 7)

(10, 12)

HR4)

¿Podría obtener la imagen original a partir de las imágenes obtenidas?


¿Cómo?

HR5)

Cuadro.bmp figuras_geometricas.jpg
Canal R, ng = 237

Canal G, ng=27

Canal B, ng=36

12
Procesado Señales Multimedia
______________________________________________________

HR6)

Y Y
Píxel
Cuadro.bmp Pijama.bmp

(1, 17)

(12, 12)

HR7)

13
Laboratorio 6: Manejo y procesado básico de imágenes Página 14

HR8)

ColorNum = 12, lumNum = 4, satNum = 8

h l s H L S

14 0,1 0,2

30 0,5 0,8

340 0,75 0,4

colorNum = 24, lumNum = 16, satNum = 4

60 0,1 0,2

90 0,5 0,8

122 0,75 0,4

Describa con palabras la cuantización de color para 8 niveles de la imagen


“pijama.bmp”:

14
Procesado Señales Multimedia
______________________________________________________

15

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