Procesamiento de Imagenes con Matrices

September 27, 2017 | Author: Hector Zarate | Category: Pixel, Matrix (Mathematics), Rgb Color Model, Color, Algebra
Share Embed Donate


Short Description

Descripción: Procesamiento de mapas de bits a través de operaciones con matrices....

Description

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Universidad Nacional Autónoma de México Facultad de ingeniería División de ciencias Básicas

Prof. Erick Norman Guevara Corona

Héctor Zárate Rea

Héctor Zárate - Trabajo Final

1

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Índice:

Introducción:

3

Conceptos Básicos:

4

Definición: . 4 Operaciones con Matrices: . 4 Adición de Matrices: . 4 Multiplicación por una Escalar: . 5 Multiplicación de Matrices: . 6

Imágenes y Matrices:

6

Imágenes Digitales: 6 . RGB: . 6 Representación de una Imagen Digital mediante una matriz: 7 . Filtros aplicados mediante operaciones con matrices que representan una imagen: 7 . Ajuste de Canales: 7 . Ajuste de Brillo: . 8 Invertir colores (Negativo): 9 . Escala de Grises: 10 . Ajuste de Contraste: . 11

Sobre el Software:

13

Conclusiones:

14

Bibliografía:

15

Héctor Zárate - Trabajo Final

2

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Introducción: En este proyecto, se pretende explicar de manera breve cómo es posible el manejo o procesamiento de imágenes a través de la computadora y como utiliza una parte de los conceptos aprendidos en la asignatura de Álgebra Lineal, particularmente las operaciones con matrices.

Héctor Zárate - Trabajo Final

3

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Conceptos Básicos: Qué es una matriz? ”Podemos decir que una matriz es una tabla o arreglo rectangular de elementos que, usualmente son números reales o complejos. El concepto de matriz sin embargo puede generalizarse al caso en que los elementos sean polinomios, funciones, operadores o cualquier otro tipo de entes matemáticos.”1

Definición:

Una matriz de n x m con elementos en C es un arreglo de la forma:

    

a11 a21 .. .

a12 a22 .. .

··· ··· .. .

a1n a2n .. .

am1

am2

···

amn

    

Donde a11,a12, amn pertenecen a C y m, n pertenecen a Z. En forma abreviada, la matriz de la definición anterior puede expresarse como: [aij] Donde i = 1, 2, 3, … , m y j = 1, 2, 3, … , n

Operaciones con Matrices: Adición de Matrices: La primera de las operaciones con matrices es la adición, esta operación puede efectuarse cuando las matrices son del mismo orden; Y el resultado se obtiene su-

1

SPEZIALE de Guzmán, Leda, et al. Apuntes de Algebra Lineal.

Héctor Zárate - Trabajo Final

4

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

mando los elementos correspondientes de ambas matrices de acuerdo con la siguiente definición:

Sean A = [aij] y B = [bij] dos matrices de n x m con elementos en C. La suma A + B es una matriz S = [sij] de m x n definida por:

sij = aij + bij Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n.

Multiplicación por una Escalar: Esta operación se define formalmente como:

Sean A = [aij] una matriz de n x m con elementos en C y ß que pertenece a C. El producto ßA es una matriz E = [eij] de m x n definida por:

eij = βaij Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n.

Héctor Zárate - Trabajo Final

5

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Multiplicación de Matrices: Formalmente se tiene la siguiente definición para la multiplicación de matrices:

Sean A = [aij] y B = [bij] dos matrices de m x n y de n x q respectivamente con elementos en C. El producto AB es una matriz P = [pij] de m x q. Definida por:

!n

k=1

aik bkj

Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , q.

Imágenes y Matrices: Imágenes Digitales: Una imagen digital es una celda compuesta por unos elementos llamados pixeles, que son los componentes más pequeños de una imagen digital. Cada pixel es un espacio en la memoria de la computadora donde se almacena un numero y este numero representa la definición del color y el brillo de una parte de la imagen. Cada pixel puede definir un color solamente y el numero de pixeles define la cantidad de información que contiene una imagen.

RGB: Cualquier color puede ser representado mediante la combinación de los colores rojo, verde y azul, cada uno en diferente proporción. La combinación RGB estándar indica 256 niveles por cada canal, es decir por cada color rojo, verde o azul. Para representar el valor de 256, requerimos de 8 bits para cada canal de color. Lo que nos permite una combinación del orden 2563 lo que nos permite una combinación de casi 17 millones de colores. (16,777,216). Existen otras representaciones como el CYMK, pero no las abordaremos en este trabajo. Puesto que solo trabajaremos con RGB.

Héctor Zárate - Trabajo Final

6

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Ejemplo: Esta imagen mide 3 pixeles de ancho por 3 de alto. (Ha sido ampliada para fines demostrativos). La matriz correspondiente a esta imagen sería una matriz de orden 3 tal:



 (151, 198, 255), (167, 202, 250), (178, 207, 249)  (176, 220, 255), (190, 223, 254), (197, 220, 253)  (209, 224, 245), (216, 229, 247), (217, 228, 246)

Representación de una Imagen Digital mediante una matriz: Ya sabido como podemos representar una imagen (RGB) formaremos una matriz de dimensiones m x n, con elementos vectores en donde cada vector estará compuesto o constituido por 3 componentes (canales RGB), con valores contenidos en los enteros de 0 a 255 en un intervalo cerrado.

Filtros aplicados mediante operaciones con matrices que representan una imagen: Dentro del procesamiento de imágenes existen algunos filtros básicos de frecuente empleo que funcionan mediante operaciones con matrices, estos filtros se emplean principalmente en la fotografía digital, los que hemos programado en este proyecto son los siguientes:

Ajuste de Canales: Consiste en manipular la intensidad de únicamente un canal a la vez, ya sea el rojo, verde, o azul independientemente.

Héctor Zárate - Trabajo Final

7

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Como ejemplo definamos el ajuste del canal verde:

M +A=C

(Esta ecuación será para ajustar el canal verde)*

    

m11 m21 .. .

m12 m22 .. .

··· ··· .. .

m1n m2n .. .

mm1

mm2

···

mmn

       +  

(0, p, 0) (0, p, 0) · · · (0, p, 0) (0, p, 0) · · · .. .. .. . . . (0, p, 0) (0, p, 0) · · ·

(0, p, 0) (0, p, 0) .. . (0, p, 0)



  + = C 

Donde mij corresponde a un vector (rij, gij, bij) correspondiente a la Imagen. Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n C corresponderá a la imagen ajustada de M.

*Nota: Para ajustar el canal rojo cada elemento de la matriz de ajuste será: (p,0,0) y para el canal azul será de elementos: (0,0,p).

Ajuste de Brillo: El ajuste de brillo es uno de los ajustes más elementales dentro del ajuste de imágenes y uno de los más empleados. El Brillo es el porcentaje de luminiscencia u oscuridad de un color. Puede ir desde el 0% que significa negro, hasta el 100% que significa blanco.

Héctor Zárate - Trabajo Final

8

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

La operación correspondiente al ajuste de brillo es la siguiente:

M +B =C

    

m11 m21 .. .

m12 m22 .. .

··· ··· .. .

m1n m2n .. .

mm1

mm2

···

mmn

       +  

(p, p, p) (p, p, p) · · · (p, p, p) (p, p, p) · · · .. .. .. . . . (p, p, p) (p, p, p) · · ·

(p, p, p) (p, p, p) .. . (p, p, p)

Donde mij corresponde a un vector (rij, gij, bij) correspondiente a la Imagen.



  =C 

Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n Donde M corresponde a la matriz imagen y C corresponderá a la imagen ajustada de M. Y p es el parámetro de ajuste de brillo, cuyo estándar va de -100 a 100.

Invertir colores (Negativo): Esta operación consiste en invertir cada canal RGB a su negativo (Sí, suena redundante). Por ejemplo, en una película fotográfica en la cual se plasman los colores invertidos de la imagen real. Esto es que el blanco pasa a ser negro, el azul a amarillo, verde a magenta y rojo a cyan. La utilidad de este filtro, se encuentra en la digitalización de películas fotográficas.

Héctor Zárate - Trabajo Final

9

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

La operación que corresponde a este ajuste es:

N −M =C

    

(255, 255, 255) (255, 255, 255) · · · (255, 255, 255) (255, 255, 255) · · · .. .. .. . . . (255, 255, 255) (255, 255, 255) · · ·

(255, 255, 255) (255, 255, 255) .. . (255, 255, 255)

       −  

m11 m21 .. .

m12 m22 .. .

··· ··· .. .

m1n m2n .. .

mm1

mm2

···

mmn



  =C 

Donde mij corresponde a un vector (rij, gij, bij) correspondiente a la Imagen. Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n C corresponderá a la imagen negativa de M.

Escala de Grises: Las conversiones entre las imágenes de color y las imágenes en escala de grises no son del todo directas. El ajuste de escala de grises consiste en la multiplicación de cada componente por 3 constantes definidas: Alfa, Beta y Gamma. Posteriormente se promedian las intensidades obtenidas en cada canal . Este proceso sustrae toda la información de color que contiene cada pixel y nos deja una separación de 255 niveles entre el blanco y el negro. Estas 3 constantes se obtienen como la separación entre los canales RGB y el negro: Alfa: Separación entre el rojo y el negro. (0.299) Beta: Separación entre el verde y el negro. (0.599) Héctor Zárate - Trabajo Final

10

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Gamma: Separación entre el azul y el negro. (0.111)

La operación correspondiente es la siguiente:



  G= 

(g11 , g11 , g11 ) (g21 , g21 , g21 ) .. .

(gm1 , gm1 , gm1 )

(g12 , g12 , g12 ) (g22 , g22 , g22 ) .. .

··· ··· .. .

(gm2 , gm2 , gm2 ) · · ·

(g1n , g1n , g1n ) (g2n , g2n , g2n ) .. .

(gmn , gmn , gmn )

    

Donde:

gij = 13 (αrij , βgij , γbij ) Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n. En donde los valores de alfa , beta y gamma son las siguientes constantes: Alfa: 0.299 Beta: 0.599 Gamma: 0.11

Ajuste de Contraste: El contraste, se refiere a la diferencia que existe entre las zonas oscuras y claras de la imagen. Héctor Zárate - Trabajo Final

11

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Este ajuste es la transformación más complicada de todos las vistas anteriormente:



m11  m21  1 C = ( 255  ..  . mm1

m12 m22 .. .

··· ··· .. .

m1n m2n .. .

mm2

···

mmn

 

a11   a21    − ..   . am1

a12 a22 .. .

··· ··· .. .

a1n a2n .. .

am2

···

amn



 a11   a21   )kc + ..   . am1

a12 a22 .. .

··· ··· .. .

a1n a2n .. .

am2

···

amn



   255 

Donde:

aij = 12 (1, 1, 1) mij corresponde a la matriz M, que es la imagen a ajustar. Para i = 1, 2, 3, … , m y j = 1, 2, 3, … , n. Y donde

kc =

100+p 100

p corresponde al parámetro de ajuste de contraste seleccionado por el usuario.

Héctor Zárate - Trabajo Final

12

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Sobre el Software: El Software fue desarrollado en C# dentro de las suite Microsoft Visual Studio 2005. La cual consta de más de 300 lineas de código malicioso, indetectable por su antivirus. Dicho código contiene cerca de 20 métodos implementados. El flujo de trabajo es el siguiente:

1. Se importa al programa un mapa de bits (BMP) o o una imagen comprimida en formato (JPEG). 2. El programa convierte la imagen a una matriz de orden 500, cuyos componentes son una estructura que contiene tres campos de números enteros, uno para cada canal de color. 3. A partir de este punto el usuario puede elegir entre 7 diferentes opciones de procesamiento para la imagen importada: • • • • • • •

Ajuste de canal rojo Ajuste de canal verde Ajuste de canal azul Ajuste de brillo Ajuste de contraste Conversión a escala de grises Negativo de la imagen

5. El programa procesa la matriz que representa la imagen siguiendo las operaciones definidas anteriormente en el desarrollo del proyecto. 6. Finalmente la matriz es vuelta a transformar a un mapa de bits que se despliega al usuario. 7. Et voilá!

Héctor Zárate - Trabajo Final

13

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Conclusiones: El desarrollo de este proyecto nos ha permitido demostrar una de las múltiples aplicaciones del álgebra lineal y aplicar varios de los temas aprendidos en clase. Esto nos ha motivado para entender que el álgebra lineal tiene una aplicación tangible y real, en varias áreas como lo es el procesamiento de imágenes que tiene un uso continua en la fotografía digital y los sistemas de control, entre otras cosas, Have fun! :)

Héctor Zárate - Trabajo Final

14

Algebra Lineal

Aplicación de las Matrices en el Procesamiento de Imágenes

Bibliografía: I. II. III. IV. V. VI.

SPEZIALE de Guzmán, Leda, et al. Apuntes de Algebra Lineal. Editorial Limusa, México, 1991. LACEY, Joel. The Complete Guide to Digital Imaging, The Ilex Press Limited, Estados Unidos, 2001. RUSS, John. The Image Processing Handbook. CRC Press, Estados Unidos, 2002. SZIDAROVSKY, Ferenc. Intoduction to matrix theory. World scientific publishing company Reino Unido, 2001 HOENIG, Alan. TeX Unbound: LaTeX and TeX strategies for fonts, graphics and more. Oxford University Press, Estados Unidos 1998. ANG, Tom, Advanced digital photography. Octopus publishing group Ltd, Inglaterra, 2003

Héctor Zárate - Trabajo Final

15

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF