SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Ingeniería Superior de Informática
Asignatura: Visión Artificial
Curso 2007/08

Práctica nº 1 : Fundamentos de la “Image Processing Toolbox”
de MATLAB
1. BREVES DEFINICIONES........................................................................................ 1
2. IMÁGENES EN MATLAB Y LA IMAGE PROCESSING TOOLBOX ................ 3
CLASES DE ALMACENAMIENTO EN LA TOOLBOX ........................................................... 3
3. TIPOS DE IMÁGENES EN LA TOOLBOX .......................................................... 3
IMÁGENES INDEXADAS .................................................................................................. 4
Clase y desplazamiento en mapas de colores........................................................... 4
IMÁGENES DE INTENSIDAD (RGB)................................................................................. 4
IMÁGENES DE BINARIAS ................................................................................................. 4
IMÁGENES RGB ............................................................................................................ 4
ARRAYS DE IMÁGENES MULTIFRAME ............................................................................. 5
Limitaciones ............................................................................................................. 6
4. SUMARIO DE TIPOS DE IMÁGENES Y CLASES NUMÉRICAS.................... 6
5. CONVERSIÓN DE TIPOS DE IMÁGENES .......................................................... 7
6. REFERENCIAS ......................................................................................................... 8

1. Breves definiciones
La siguiente tabla nos ayudará, de manera resumida, a entender un poco más los
tipos de imágenes con los que MATLAB trabaja.
Palabras
Imagen binaria (Binary image)

Definiciones
Imagen que contiene sólo píxeles de color
blanco y negro. En MATLAB, una imagen
binaria es representada por una matriz de
tipo uint8 o double logical que
contiene 0’s y 1’s (los cuales representan
blanco y negro respectivamente). Una
matriz es logical cuando sus flags lógicas
Tipo imagen (Image type)

Imagen indexada (Indexed image)

Imagen de intensidad (Intensity image)

Imagen multiframe (Multiframe image)

Imagen RGB (RGB image)

Clase de almacenamiento (Storage class)

están habilitadas. De forma habitual se
nombra a la variable que contiene una
imagen binaria como BW.
La relación definida entre los valores de un
array y los colores de los píxeles. La
toolbox soporta imágenes binarias,
indexadas, de intensidad y RGB.
Imagen cuyos píxeles tienen valores que
son índices directos a un mapa de color
RGB. En MATLAB, una imagen indexada
es representada por un array de clase
uint8, uint16, o double. El mapa de
color es siempre un array mx3 de clase
double. De forma habitual se nombra a la
variable que contiene una imagen indexada
como X.
Es una imagen cuyos valores de píxeles
corresponden a una escala de grises. En
MATLAB, una imagen de intensidad es
representada por un array de clase uint8,
uint16, o double.
Mientras estas
imágenes no sean guardadas con mapas de
color, MATLAB usará un mapa del
sistema para mostrarla. De forma habitual
se nombra a la variable que contiene una
imagen de intensidad como I. Este término
es sinónimo de escala de grises.
Un archivo que contiene más de una
imagen o frames. Una vez guardado en una
variable, la imagen multiframe es un array
de 4 dimensiones, donde la cuarta
dimensión especifica el número del frame.
Este término es sinónimo de imagen
multipágina (multipage image)
Una
imagen
cuyos
píxeles
son
especificados por 3 valores, uno para cada
componente de color (rojo, verde y azul)
de cada píxel. En MATLAB, una imagen
RGB es representada por un array mxnx3
de clase uint8, uint16, o double. De
forma habitual se nombra a la variable que
contiene una imagen RGB como RGB.
Es la clase numérica de almacenamiento
usada para guardar una imagen en
MATLAB. Las posibles clases que
MATLAB utiliza son uint8, uint16 y
double.
2. Imágenes en MATLAB y la Image Processing Toolbox
Las estructuras de datos básicos en MATLAB son los arrays, unos conjuntos
ordenados de elementos reales o complejos. Este objeto es, de forma natural, adecuado a
la representación de imágenes, o de lo que es lo mismo, conjuntos ordenados de valores
reales de color o intensidad.
MATLAB guarda la mayoría de las imágenes como arrays bidimensionales
(matrices), en los que cada elemento de la matriz corresponde a un único píxel1 en la
imagen mostrada. Así, por ejemplo, una imagen compuesta por 200 filas y 300
columnas de puntos de color diferente sería guardada en MATLAB como una matriz de
200x300. Algunas imágenes, como las RGB2, requieren un array tridimensional, donde
el primer plano de la tercera dimensión representa las intensidades de color rojo, la
segunda el verde y la tercera azul.
Esta convención hace que trabajar con imágenes en MATLAB sea similar a
trabajar con cualquier otro tipo de matrices, y hace que toda la potencia que MATLAB
ofrece al manejo de matrices sea accesible para aplicaciones de procesamiento de
imágenes. Por ejemplo, podemos seleccionar un único píxel de una imagen usando la
nomenclatura habitual en el manejo de matrices:
I(2,15)

Este comando devuelve el valor del píxel que se encuentra en la fila 2 y la
columna 15 de la imagen guardada en memoria I.

Clases de almacenamiento en la Toolbox
Por defecto, MATLAB guarda la mayor parte de los datos como arrays de clase
double. Los datos en estos arrays son guardados como números de punto flotante de

doble precisión (64-bit).
Sin embargo, para procesamiento de imagen, esta representación puede no ser
siempre la más adecuada. El número de píxeles en una imagen puede ser muy grande
(por ejemplo una 1000x1000 tiene 1 millón de píxeles). Como cada píxel está
representado por, al menos, un elemento del array, esta imagen requeriría unos 8 MB de
memoria.
Para reducir los requisitos de memoria, MATLAB puede guardar los datos de
una imagen en arrays de enteros sin signo de 8 o 16 bits, las llamadas clases uint8 y
uint16. Estos arrays requieren una octava y una cuarta parte de memoria respecto a un
array de tipo double.

3. Tipos de imágenes en la Toolbox
Como hemos visto, la toolbox de procesamiento de imágenes soporta 4 tipos
básicos de imágenes.
• Imágenes indexadas
• Imágenes de intensidad
• Imágenes binarias
• Imágenes RGB

1
2

Pixel viene de picture element y usualmente denota un único punto de la imagen
RGB viene del inglés Red-Green-Blue
Imágenes indexadas
Una imagen indexada consiste en una matriz de datos, X, y una matriz de mapa
de color, map. La matriz de datos puede ser de clase uint8, uint16 o double. La
matriz del mapa de colores es un array de clase double de mx3 que contiene valores de
punto flotante en el rango [0,1]. Cada fila del mapa especifica la componente de rojo,
verde y azul de un único color. La imagen indexada utiliza de forma directa el mapa de
colores. El color de cada píxel de la imagen es determinado mediante el uso del
correspondiente valor de X como índice para el mapa. Así, un valor 1 apuntaría a la
primera fila del mapa, 2 a la segunda,...
Un mapa de colores es normalmente guardado con una imagen indexada y es
automáticamente cargado con la imagen cuando usamos la función imread.
Clase y desplazamiento en mapas de colores
La relación entre los valores de la matriz de la imagen y el mapa de color
depende de la clase de la matriz de la imagen. Si esta matriz es de clase double
entonces el valor 1 apuntará a la primera fila del mapa, el 2 a la segunda,... como ya se
ha comentado anteriormente. Sin embargo si la clase de la matriz es uint8 o uint16,
hay un desplazamiento y el valor 0 apuntaría a la primera fila del mapa, el valor 1 a la
segunda y así sucesivamente.
Este desplazamiento es también usado en formatos de ficheros gráficos para
maximizar el número de colores que puede soportar.

Imágenes de intensidad
Una imagen de intensidad es una matriz de datos, I, cuyos valores representan
intensidades dentro de algún rango. MATLAB guarda la imagen de intensidad como
una única matriz, cuyos elementos son los píxeles de la imagen. La matriz puede ser de
clase double, uint8 o uint16. Los elementos de la matriz de intensidad representan
varias intensidades, o niveles de gris, donde la intensidad 0 usualmente representa negro
(ausencia de color) y la intensidad 1, 255 o 65535 representa intensidad total o blanco.

Imágenes de binarias
En una imagen binaria, cada píxel asume uno de sólo dos valores discretos.
Esencialmente, estos dos valores corresponden a activado o desactivado. Una imagen
binaria es guardada como una matriz bidimensional de 0’s (píxeles desactivados) y 1’s
(píxeles activados).
Una imagen binaria puede ser considerada un tipo especial de imagen de
intensidad, conteniendo solamente blanco y negro.
Una imagen binaria puede ser guardada en un array de clase double o uint8.
Un array de clase uint8 es generalmente preferible por usar bastante menos memoria
que si fuese de tipo double. En la toolbox de procesamiento de imagen, si alguna
función devuelve una imagen binaria lo hará en forma de array de tipo uint8 logical.
La toolbox utiliza el flag logical activado para indicar que el rango de datos de un array
de uint8 es [0,1] y desactivado [0,255].

Imágenes RGB
Una imagen RGB, a menudo referida como una imagen de color verdadero, es
guardada en MATLAB como un array de datos de mxnx3 que define las componentes
roja, verde y azul de cada píxel individual. Una imagen RGB no necesita paleta de
colores ya que la combinación de las tres componentes básicas de color guardadas en
cada plano definen el propio color a representar en el píxel correspondiente. Los
formatos de ficheros gráficos guardan imágenes RGB de 24 bpp, donde cada
componente de color son de 8 bits. Esto da una gama de hasta 16 millones de colores.
La precisión con la que una imagen de la vida real puede ser replicada ha dado el
nombre al término comúnmente utilizado como color verdadero.
Una imagen RGB en MATLAB puede ser de clase double, uint8 o uint16.
En un array RGB de clase double, cada componente de color tiene un valor
comprendido entre 0 y 1. Un píxel cuyas componentes de color sean (0,0,0) se mostrará
de color negro, mientras que otro de componentes (1,1,1) se mostrará blanco. Las tres
componentes de color de cada píxel son guardadas en la tercera dimensión del array de
datos. Por ejemplo, la componente roja, verde y azul del píxel (10,5) serán guardadas en
RGB(10,5,1), RGB(10,5,2) y RGB(10,5,3) respectivamente.
De igual manera y a modo de otro nuevo ejemplo podemos averiguar el color de
un píxel determinado averiguando las tres componentes de color de la manera vista
anteriormente, de tal forma que si la componente roja del píxel (2,3) tiene el valor de
0.5176, la verde 0.1608 y la azul 0.0627, el color del píxel (2,3) será:
0.5176

0.1608

0.0627

Para terminar de ilustrar el concepto de los tres planos de color separados usados
en una imagen RGB, podemos utilizar el siguiente código que crea una imagen que
contiene un gradiente de color y cada componente en diferentes imágenes por separado.
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
imshow(R)
figure,imshow(G)
figure,imshow(B)
figure,imshow(RGB)

Si ejecutamos el código notaremos que cada plano por separado contiene un área
de color banco. El blanco corresponde a los valores más altos de cada color. Por
ejemplo, en la imagen del plano rojo, el blanco representa la porción de la imagen RGB
donde más concentración de rojo existe. Cuando la imagen RGB se vuelve más verde o
azul, empiezan a aparecer tonos grises en la imagen R y cuando se entra en la región
negra de la imagen R entonces significa que la imagen RGB no contiene valores
diferentes de 0 para la componente roja, es decir, R==0.

Arrays de imágenes multiframe
Para algunas aplicaciones, podemos necesitar trabajar con colecciones de
imágenes relacionadas en tiempo o vista, tales como imágenes de resonancia magnética
(MRI) o frames de películas.
La Image Processing Toolbox da soporte para guardar múltiples imágenes en un
mismo array. Cada imagen por separado del array se llama frame. Si un array contiene
múltiples frames, estarán concatenados en su cuarta dimensión. Por ejemplo, un array
de cinco imágenes RGB de 400x300 sería 400x300x3x5. Una imagen multiframe de
intensidad o imágenes indexadas sería 400x300x1x5.
Para guardar imágenes separadas en un fichero multiframe podemos utilizar la
función cat. Por ejemplo, si tenemos un grupo de imágenes A1, A2, A3, A4 y A5,
podemos guardarlas en un único array usando:
A=cat(4,A1,A2,A3,A4,A5)

También podemos extraer frames de una imagen multiframe invocándola
directamente mediante la notación de MATLAB. Por ejemplo, si tenemos una imagen
multiframe MULTI y queremos extraer el tercer frame:
FRM3=MULTI(:,:,:,3);

Notar que en un array de imágenes multiframe, cada imagen debe tener las
mismas dimensiones y el mismo número de planos. Igualmente, en un array multiframe
de imágenes indexadas, cada una de las imágenes debe también usar el mismo mapa de
colores.
Limitaciones
Muchas de las funciones en la toolbox operan sólo con las 2 primeras o hasta
terceras dimensiones. Podemos usar arrays de cuatro dimensiones con estas funciones,
pero extrayendo individualmente los frames. Por ejemplo, para mostrar el séptimo
frame de un array multiframe haríamos:
imshow(MULTI(:,:,:,7))

4. Sumario de tipos de imágenes y clases numéricas
La siguiente tabla muestra de forma breve la manera que MATLAB interpreta
los elementos de una matriz de datos como píxeles de color, dependiendo del tipo de
imágenes y clase de almacenamiento.
Tipo de imagen
Binaria

Indexada

De intensidad

Clase uint8 o uint16
La imagen es un array mxn
de ceros y unos donde el
flag logical está activado.
La toolbox no soporta
imágenes binarias uint16.
La imagen es un array mxn La imagen es un array mxn
de enteros en el rango [1,p]. de enteros en el rango [1,p1].
El mapa de colores es un
array px3 de valores de El mapa de colores es un
punto flotante en el rango array px3 de valores de
[0,1].
punto flotante en el rango
[0,1].
La imagen es un array mxn La imagen es un array mxn
de valores de punto flotante de valores de punto flotante
que son escalados por que son escalados por
MATLAB para producir MATLAB para producir
índices del mapa de colores, índices del mapa de colores,
típicamente en el rango típicamente en el rango
[0,1].
[0,255] o [0,65535].

Clase double
La imagen es un array mxn
de ceros y unos donde el
flag logical está activado
RGB (Color verdadero)

El mapa de colores es un
array px3 de valores de
punto flotante en el rango
[0,1] y es típicamente en
escala de grises.
La imagen es un array
mxnx3 de valores de punto
flotante en el rango [0,1].

El mapa de colores es un
array mxnx3 de enteros en
el rango [0,255] o [0,65535]

La imagen es un array
mxnx3 de enteros en el
rango [0,255] o [0,65535].

5. Conversión de tipos de imágenes
Para ciertas operaciones, puede resultar de utilidad convertir una imagen a un
tipo diferente. Por ejemplo, si queremos filtrar una imagen de color que está guardada
como imagen indexada, deberíamos primero convertirla a formato RGB. Cuando
aplicamos el filtro a la imagen RGB, MATLAB filtra los valores de intensidad en la
imagen de forma apropiada. Si intentamos filtrar la imagen indexada, MATLAB
simplemente aplicará el filtro a los índices de la matriz, y el resultado será carente de
significado.
La siguiente tabla muestra las funciones de conversión de imágenes de la Image
Processing Toolbox.
Función
dither

gray2ind
grayslice

im2bw

ind2gray
ind2rgb
mat2gray

rgb2gray
rgb2ind

Propósito
Crea una imagen binaria de una de escala
de grises; o una indexada a partir de una
RGB por el método de dithering.
Crea una imagen indexada a partir de una
de escala de grises.
Crea una imagen indexada a partir de una
de escala de grises por el método de
umbralización.
Crea una imagen binaria de una de
intensidad,
o
RGB,
basado
en
umbralización de la luminancia.
Crea una imagen en escala de grises a
partir de una imagen indexada.
Crea una imagen RGB a partir de una
imagen indexada.
Crea una imagen en escala de grises a
partir de datos en una matriz, reescalando
los datos.
Crea una imagen en escala de grises a
partir de una imagen RGB.
Crea una imagen indexada a partir de una
imagen RGB.

También podemos realizar ciertas conversiones simplemente utilizando la
sintaxis de MATLAB. Por ejemplo, podemos convertir una imagen de intensidad a
RGB concatenando tres copias de la matriz original a lo largo de su tercera dimensión:
RGB=cat(3,I,I,I);

La imagen RGB resultante tiene idénticas matrices para los planos rojo, verde y
azul, por tanto la imagen será mostrada en escala de grises.

6. Referencias
[1] Manual de ayuda de la Image Processing Toolbox de MATLAB

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
diapositivas de matlab
diapositivas de matlabdiapositivas de matlab
diapositivas de matlab
 
Informe matlab.
Informe matlab.Informe matlab.
Informe matlab.
 
Trabajo Final
Trabajo FinalTrabajo Final
Trabajo Final
 
Tutorial de MatLab
Tutorial de MatLabTutorial de MatLab
Tutorial de MatLab
 
Manual Matlab 2008
Manual Matlab 2008Manual Matlab 2008
Manual Matlab 2008
 
Matlab y su lista de comandos
Matlab y su lista de comandosMatlab y su lista de comandos
Matlab y su lista de comandos
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Comandos utilizados en el matlab
Comandos utilizados en el matlabComandos utilizados en el matlab
Comandos utilizados en el matlab
 
Examen Parcial 2
Examen Parcial 2Examen Parcial 2
Examen Parcial 2
 
Manual matlab R2009a
Manual  matlab R2009aManual  matlab R2009a
Manual matlab R2009a
 
Manual dematlab
Manual dematlabManual dematlab
Manual dematlab
 
MATLAB 2010
MATLAB 2010MATLAB 2010
MATLAB 2010
 
Matlab teoria
Matlab teoriaMatlab teoria
Matlab teoria
 
Curso matlab
Curso matlabCurso matlab
Curso matlab
 
Intro a matlab
Intro a matlabIntro a matlab
Intro a matlab
 
Programar En Matlab
Programar En MatlabProgramar En Matlab
Programar En Matlab
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 

Similar a Procesador de imágenes toolbox Matlab

Introduccion al procesamiento de imagenes con matlab
Introduccion al procesamiento de imagenes con matlabIntroduccion al procesamiento de imagenes con matlab
Introduccion al procesamiento de imagenes con matlabF Lliuya
 
Manejo basico de imagenes matlab
Manejo basico de imagenes matlabManejo basico de imagenes matlab
Manejo basico de imagenes matlabAbner Chavez
 
Contenedoras de dos dimensiones
Contenedoras de dos dimensionesContenedoras de dos dimensiones
Contenedoras de dos dimensionesRobinson Jiménez
 
Tema 14 imágenes en java por gio
Tema 14   imágenes en java por gioTema 14   imágenes en java por gio
Tema 14 imágenes en java por gioRobert Wolf
 
Las matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenesLas matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenesjorquera
 
Logica difusautilizandomatlab
Logica difusautilizandomatlabLogica difusautilizandomatlab
Logica difusautilizandomatlabrubi18
 
Octave_TICA_2022.pdf
Octave_TICA_2022.pdfOctave_TICA_2022.pdf
Octave_TICA_2022.pdfmarco854887
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplotblogdevon
 
Universidad de panamá tema el Histograma
Universidad de panamá tema el HistogramaUniversidad de panamá tema el Histograma
Universidad de panamá tema el HistogramaAyleen
 
Metodos numericos..pptx
Metodos numericos..pptxMetodos numericos..pptx
Metodos numericos..pptxErickMalaveS
 
Estructuras de datos C++, unidimensionales y bidimencionales
Estructuras de datos C++, unidimensionales y bidimencionalesEstructuras de datos C++, unidimensionales y bidimencionales
Estructuras de datos C++, unidimensionales y bidimencionalesDanielGonzalez184830
 

Similar a Procesador de imágenes toolbox Matlab (20)

Introduccion al procesamiento de imagenes con matlab
Introduccion al procesamiento de imagenes con matlabIntroduccion al procesamiento de imagenes con matlab
Introduccion al procesamiento de imagenes con matlab
 
Manejo basico de imagenes matlab
Manejo basico de imagenes matlabManejo basico de imagenes matlab
Manejo basico de imagenes matlab
 
Contenedoras de dos dimensiones
Contenedoras de dos dimensionesContenedoras de dos dimensiones
Contenedoras de dos dimensiones
 
Tema 14 imágenes en java por gio
Tema 14   imágenes en java por gioTema 14   imágenes en java por gio
Tema 14 imágenes en java por gio
 
Las matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenesLas matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenes
 
Logica difusautilizandomatlab
Logica difusautilizandomatlabLogica difusautilizandomatlab
Logica difusautilizandomatlab
 
Tema 3
Tema 3Tema 3
Tema 3
 
Octave_TICA_2022.pdf
Octave_TICA_2022.pdfOctave_TICA_2022.pdf
Octave_TICA_2022.pdf
 
Matrices
MatricesMatrices
Matrices
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplot
 
Boletin 2
Boletin 2Boletin 2
Boletin 2
 
Matrices
MatricesMatrices
Matrices
 
Universidad de panamá tema el Histograma
Universidad de panamá tema el HistogramaUniversidad de panamá tema el Histograma
Universidad de panamá tema el Histograma
 
Imagenes
ImagenesImagenes
Imagenes
 
Matlab robotica
Matlab roboticaMatlab robotica
Matlab robotica
 
Scastillo.pptx
Scastillo.pptxScastillo.pptx
Scastillo.pptx
 
Intro matlab msantos
Intro matlab msantosIntro matlab msantos
Intro matlab msantos
 
Metodos numericos..pptx
Metodos numericos..pptxMetodos numericos..pptx
Metodos numericos..pptx
 
Estructuras de datos C++, unidimensionales y bidimencionales
Estructuras de datos C++, unidimensionales y bidimencionalesEstructuras de datos C++, unidimensionales y bidimencionales
Estructuras de datos C++, unidimensionales y bidimencionales
 
Mat lab04
Mat lab04Mat lab04
Mat lab04
 

Más de dave

Reporte proyecto primer parcial 1
Reporte proyecto primer parcial 1Reporte proyecto primer parcial 1
Reporte proyecto primer parcial 1dave
 
Usart PIC config LANDA
Usart PIC config LANDAUsart PIC config LANDA
Usart PIC config LANDAdave
 
Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 dave
 
Toy story youve-got_a_friend_in_me PIANO
Toy story youve-got_a_friend_in_me PIANOToy story youve-got_a_friend_in_me PIANO
Toy story youve-got_a_friend_in_me PIANOdave
 
we wish you a merry xmas PIANO
we wish you a merry xmas PIANOwe wish you a merry xmas PIANO
we wish you a merry xmas PIANOdave
 
Jingle bells PIANO
Jingle bells PIANOJingle bells PIANO
Jingle bells PIANOdave
 
Muse feeling good PIANO
Muse feeling good PIANOMuse feeling good PIANO
Muse feeling good PIANOdave
 
Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASMdave
 
LABVIEW comunicación por puerto serial USART
LABVIEW  comunicación por puerto serial USART LABVIEW  comunicación por puerto serial USART
LABVIEW comunicación por puerto serial USART dave
 
Elton john goodbye-yellow_brick_road
Elton john goodbye-yellow_brick_roadElton john goodbye-yellow_brick_road
Elton john goodbye-yellow_brick_roaddave
 
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...dave
 
Air supply lost-in_love
Air supply lost-in_loveAir supply lost-in_love
Air supply lost-in_lovedave
 
Adolfo utrera aquellos-ojos_verdes
Adolfo utrera aquellos-ojos_verdesAdolfo utrera aquellos-ojos_verdes
Adolfo utrera aquellos-ojos_verdesdave
 
Perez prado-que-rico_el_mambo
Perez prado-que-rico_el_mamboPerez prado-que-rico_el_mambo
Perez prado-que-rico_el_mambodave
 
Procesamiento de Imágenes
Procesamiento de ImágenesProcesamiento de Imágenes
Procesamiento de Imágenesdave
 
Configuración devicenet
Configuración devicenetConfiguración devicenet
Configuración devicenetdave
 
Devicenet
DevicenetDevicenet
Devicenetdave
 
Metallica enter sandman partitura piano
Metallica enter sandman partitura pianoMetallica enter sandman partitura piano
Metallica enter sandman partitura pianodave
 
Tutorial IRON MAN mascara robótica
Tutorial IRON MAN mascara robóticaTutorial IRON MAN mascara robótica
Tutorial IRON MAN mascara robóticadave
 
La danza de la hada de los dulces Partitura PIANO
La danza de la hada de los dulces Partitura PIANOLa danza de la hada de los dulces Partitura PIANO
La danza de la hada de los dulces Partitura PIANOdave
 

Más de dave (20)

Reporte proyecto primer parcial 1
Reporte proyecto primer parcial 1Reporte proyecto primer parcial 1
Reporte proyecto primer parcial 1
 
Usart PIC config LANDA
Usart PIC config LANDAUsart PIC config LANDA
Usart PIC config LANDA
 
Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012
 
Toy story youve-got_a_friend_in_me PIANO
Toy story youve-got_a_friend_in_me PIANOToy story youve-got_a_friend_in_me PIANO
Toy story youve-got_a_friend_in_me PIANO
 
we wish you a merry xmas PIANO
we wish you a merry xmas PIANOwe wish you a merry xmas PIANO
we wish you a merry xmas PIANO
 
Jingle bells PIANO
Jingle bells PIANOJingle bells PIANO
Jingle bells PIANO
 
Muse feeling good PIANO
Muse feeling good PIANOMuse feeling good PIANO
Muse feeling good PIANO
 
Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASM
 
LABVIEW comunicación por puerto serial USART
LABVIEW  comunicación por puerto serial USART LABVIEW  comunicación por puerto serial USART
LABVIEW comunicación por puerto serial USART
 
Elton john goodbye-yellow_brick_road
Elton john goodbye-yellow_brick_roadElton john goodbye-yellow_brick_road
Elton john goodbye-yellow_brick_road
 
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...
Diseno de antenas direccionales de 2.4 y 5.8 ghz por medio de la tecnica de m...
 
Air supply lost-in_love
Air supply lost-in_loveAir supply lost-in_love
Air supply lost-in_love
 
Adolfo utrera aquellos-ojos_verdes
Adolfo utrera aquellos-ojos_verdesAdolfo utrera aquellos-ojos_verdes
Adolfo utrera aquellos-ojos_verdes
 
Perez prado-que-rico_el_mambo
Perez prado-que-rico_el_mamboPerez prado-que-rico_el_mambo
Perez prado-que-rico_el_mambo
 
Procesamiento de Imágenes
Procesamiento de ImágenesProcesamiento de Imágenes
Procesamiento de Imágenes
 
Configuración devicenet
Configuración devicenetConfiguración devicenet
Configuración devicenet
 
Devicenet
DevicenetDevicenet
Devicenet
 
Metallica enter sandman partitura piano
Metallica enter sandman partitura pianoMetallica enter sandman partitura piano
Metallica enter sandman partitura piano
 
Tutorial IRON MAN mascara robótica
Tutorial IRON MAN mascara robóticaTutorial IRON MAN mascara robótica
Tutorial IRON MAN mascara robótica
 
La danza de la hada de los dulces Partitura PIANO
La danza de la hada de los dulces Partitura PIANOLa danza de la hada de los dulces Partitura PIANO
La danza de la hada de los dulces Partitura PIANO
 

Último

Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 

Último (20)

Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 

Procesador de imágenes toolbox Matlab

  • 1. Ingeniería Superior de Informática Asignatura: Visión Artificial Curso 2007/08 Práctica nº 1 : Fundamentos de la “Image Processing Toolbox” de MATLAB 1. BREVES DEFINICIONES........................................................................................ 1 2. IMÁGENES EN MATLAB Y LA IMAGE PROCESSING TOOLBOX ................ 3 CLASES DE ALMACENAMIENTO EN LA TOOLBOX ........................................................... 3 3. TIPOS DE IMÁGENES EN LA TOOLBOX .......................................................... 3 IMÁGENES INDEXADAS .................................................................................................. 4 Clase y desplazamiento en mapas de colores........................................................... 4 IMÁGENES DE INTENSIDAD (RGB)................................................................................. 4 IMÁGENES DE BINARIAS ................................................................................................. 4 IMÁGENES RGB ............................................................................................................ 4 ARRAYS DE IMÁGENES MULTIFRAME ............................................................................. 5 Limitaciones ............................................................................................................. 6 4. SUMARIO DE TIPOS DE IMÁGENES Y CLASES NUMÉRICAS.................... 6 5. CONVERSIÓN DE TIPOS DE IMÁGENES .......................................................... 7 6. REFERENCIAS ......................................................................................................... 8 1. Breves definiciones La siguiente tabla nos ayudará, de manera resumida, a entender un poco más los tipos de imágenes con los que MATLAB trabaja. Palabras Imagen binaria (Binary image) Definiciones Imagen que contiene sólo píxeles de color blanco y negro. En MATLAB, una imagen binaria es representada por una matriz de tipo uint8 o double logical que contiene 0’s y 1’s (los cuales representan blanco y negro respectivamente). Una matriz es logical cuando sus flags lógicas
  • 2. Tipo imagen (Image type) Imagen indexada (Indexed image) Imagen de intensidad (Intensity image) Imagen multiframe (Multiframe image) Imagen RGB (RGB image) Clase de almacenamiento (Storage class) están habilitadas. De forma habitual se nombra a la variable que contiene una imagen binaria como BW. La relación definida entre los valores de un array y los colores de los píxeles. La toolbox soporta imágenes binarias, indexadas, de intensidad y RGB. Imagen cuyos píxeles tienen valores que son índices directos a un mapa de color RGB. En MATLAB, una imagen indexada es representada por un array de clase uint8, uint16, o double. El mapa de color es siempre un array mx3 de clase double. De forma habitual se nombra a la variable que contiene una imagen indexada como X. Es una imagen cuyos valores de píxeles corresponden a una escala de grises. En MATLAB, una imagen de intensidad es representada por un array de clase uint8, uint16, o double. Mientras estas imágenes no sean guardadas con mapas de color, MATLAB usará un mapa del sistema para mostrarla. De forma habitual se nombra a la variable que contiene una imagen de intensidad como I. Este término es sinónimo de escala de grises. Un archivo que contiene más de una imagen o frames. Una vez guardado en una variable, la imagen multiframe es un array de 4 dimensiones, donde la cuarta dimensión especifica el número del frame. Este término es sinónimo de imagen multipágina (multipage image) Una imagen cuyos píxeles son especificados por 3 valores, uno para cada componente de color (rojo, verde y azul) de cada píxel. En MATLAB, una imagen RGB es representada por un array mxnx3 de clase uint8, uint16, o double. De forma habitual se nombra a la variable que contiene una imagen RGB como RGB. Es la clase numérica de almacenamiento usada para guardar una imagen en MATLAB. Las posibles clases que MATLAB utiliza son uint8, uint16 y double.
  • 3. 2. Imágenes en MATLAB y la Image Processing Toolbox Las estructuras de datos básicos en MATLAB son los arrays, unos conjuntos ordenados de elementos reales o complejos. Este objeto es, de forma natural, adecuado a la representación de imágenes, o de lo que es lo mismo, conjuntos ordenados de valores reales de color o intensidad. MATLAB guarda la mayoría de las imágenes como arrays bidimensionales (matrices), en los que cada elemento de la matriz corresponde a un único píxel1 en la imagen mostrada. Así, por ejemplo, una imagen compuesta por 200 filas y 300 columnas de puntos de color diferente sería guardada en MATLAB como una matriz de 200x300. Algunas imágenes, como las RGB2, requieren un array tridimensional, donde el primer plano de la tercera dimensión representa las intensidades de color rojo, la segunda el verde y la tercera azul. Esta convención hace que trabajar con imágenes en MATLAB sea similar a trabajar con cualquier otro tipo de matrices, y hace que toda la potencia que MATLAB ofrece al manejo de matrices sea accesible para aplicaciones de procesamiento de imágenes. Por ejemplo, podemos seleccionar un único píxel de una imagen usando la nomenclatura habitual en el manejo de matrices: I(2,15) Este comando devuelve el valor del píxel que se encuentra en la fila 2 y la columna 15 de la imagen guardada en memoria I. Clases de almacenamiento en la Toolbox Por defecto, MATLAB guarda la mayor parte de los datos como arrays de clase double. Los datos en estos arrays son guardados como números de punto flotante de doble precisión (64-bit). Sin embargo, para procesamiento de imagen, esta representación puede no ser siempre la más adecuada. El número de píxeles en una imagen puede ser muy grande (por ejemplo una 1000x1000 tiene 1 millón de píxeles). Como cada píxel está representado por, al menos, un elemento del array, esta imagen requeriría unos 8 MB de memoria. Para reducir los requisitos de memoria, MATLAB puede guardar los datos de una imagen en arrays de enteros sin signo de 8 o 16 bits, las llamadas clases uint8 y uint16. Estos arrays requieren una octava y una cuarta parte de memoria respecto a un array de tipo double. 3. Tipos de imágenes en la Toolbox Como hemos visto, la toolbox de procesamiento de imágenes soporta 4 tipos básicos de imágenes. • Imágenes indexadas • Imágenes de intensidad • Imágenes binarias • Imágenes RGB 1 2 Pixel viene de picture element y usualmente denota un único punto de la imagen RGB viene del inglés Red-Green-Blue
  • 4. Imágenes indexadas Una imagen indexada consiste en una matriz de datos, X, y una matriz de mapa de color, map. La matriz de datos puede ser de clase uint8, uint16 o double. La matriz del mapa de colores es un array de clase double de mx3 que contiene valores de punto flotante en el rango [0,1]. Cada fila del mapa especifica la componente de rojo, verde y azul de un único color. La imagen indexada utiliza de forma directa el mapa de colores. El color de cada píxel de la imagen es determinado mediante el uso del correspondiente valor de X como índice para el mapa. Así, un valor 1 apuntaría a la primera fila del mapa, 2 a la segunda,... Un mapa de colores es normalmente guardado con una imagen indexada y es automáticamente cargado con la imagen cuando usamos la función imread. Clase y desplazamiento en mapas de colores La relación entre los valores de la matriz de la imagen y el mapa de color depende de la clase de la matriz de la imagen. Si esta matriz es de clase double entonces el valor 1 apuntará a la primera fila del mapa, el 2 a la segunda,... como ya se ha comentado anteriormente. Sin embargo si la clase de la matriz es uint8 o uint16, hay un desplazamiento y el valor 0 apuntaría a la primera fila del mapa, el valor 1 a la segunda y así sucesivamente. Este desplazamiento es también usado en formatos de ficheros gráficos para maximizar el número de colores que puede soportar. Imágenes de intensidad Una imagen de intensidad es una matriz de datos, I, cuyos valores representan intensidades dentro de algún rango. MATLAB guarda la imagen de intensidad como una única matriz, cuyos elementos son los píxeles de la imagen. La matriz puede ser de clase double, uint8 o uint16. Los elementos de la matriz de intensidad representan varias intensidades, o niveles de gris, donde la intensidad 0 usualmente representa negro (ausencia de color) y la intensidad 1, 255 o 65535 representa intensidad total o blanco. Imágenes de binarias En una imagen binaria, cada píxel asume uno de sólo dos valores discretos. Esencialmente, estos dos valores corresponden a activado o desactivado. Una imagen binaria es guardada como una matriz bidimensional de 0’s (píxeles desactivados) y 1’s (píxeles activados). Una imagen binaria puede ser considerada un tipo especial de imagen de intensidad, conteniendo solamente blanco y negro. Una imagen binaria puede ser guardada en un array de clase double o uint8. Un array de clase uint8 es generalmente preferible por usar bastante menos memoria que si fuese de tipo double. En la toolbox de procesamiento de imagen, si alguna función devuelve una imagen binaria lo hará en forma de array de tipo uint8 logical. La toolbox utiliza el flag logical activado para indicar que el rango de datos de un array de uint8 es [0,1] y desactivado [0,255]. Imágenes RGB Una imagen RGB, a menudo referida como una imagen de color verdadero, es guardada en MATLAB como un array de datos de mxnx3 que define las componentes roja, verde y azul de cada píxel individual. Una imagen RGB no necesita paleta de colores ya que la combinación de las tres componentes básicas de color guardadas en
  • 5. cada plano definen el propio color a representar en el píxel correspondiente. Los formatos de ficheros gráficos guardan imágenes RGB de 24 bpp, donde cada componente de color son de 8 bits. Esto da una gama de hasta 16 millones de colores. La precisión con la que una imagen de la vida real puede ser replicada ha dado el nombre al término comúnmente utilizado como color verdadero. Una imagen RGB en MATLAB puede ser de clase double, uint8 o uint16. En un array RGB de clase double, cada componente de color tiene un valor comprendido entre 0 y 1. Un píxel cuyas componentes de color sean (0,0,0) se mostrará de color negro, mientras que otro de componentes (1,1,1) se mostrará blanco. Las tres componentes de color de cada píxel son guardadas en la tercera dimensión del array de datos. Por ejemplo, la componente roja, verde y azul del píxel (10,5) serán guardadas en RGB(10,5,1), RGB(10,5,2) y RGB(10,5,3) respectivamente. De igual manera y a modo de otro nuevo ejemplo podemos averiguar el color de un píxel determinado averiguando las tres componentes de color de la manera vista anteriormente, de tal forma que si la componente roja del píxel (2,3) tiene el valor de 0.5176, la verde 0.1608 y la azul 0.0627, el color del píxel (2,3) será: 0.5176 0.1608 0.0627 Para terminar de ilustrar el concepto de los tres planos de color separados usados en una imagen RGB, podemos utilizar el siguiente código que crea una imagen que contiene un gradiente de color y cada componente en diferentes imágenes por separado. RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]); R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); imshow(R) figure,imshow(G) figure,imshow(B) figure,imshow(RGB) Si ejecutamos el código notaremos que cada plano por separado contiene un área de color banco. El blanco corresponde a los valores más altos de cada color. Por ejemplo, en la imagen del plano rojo, el blanco representa la porción de la imagen RGB donde más concentración de rojo existe. Cuando la imagen RGB se vuelve más verde o azul, empiezan a aparecer tonos grises en la imagen R y cuando se entra en la región negra de la imagen R entonces significa que la imagen RGB no contiene valores diferentes de 0 para la componente roja, es decir, R==0. Arrays de imágenes multiframe Para algunas aplicaciones, podemos necesitar trabajar con colecciones de imágenes relacionadas en tiempo o vista, tales como imágenes de resonancia magnética (MRI) o frames de películas. La Image Processing Toolbox da soporte para guardar múltiples imágenes en un mismo array. Cada imagen por separado del array se llama frame. Si un array contiene múltiples frames, estarán concatenados en su cuarta dimensión. Por ejemplo, un array de cinco imágenes RGB de 400x300 sería 400x300x3x5. Una imagen multiframe de intensidad o imágenes indexadas sería 400x300x1x5. Para guardar imágenes separadas en un fichero multiframe podemos utilizar la función cat. Por ejemplo, si tenemos un grupo de imágenes A1, A2, A3, A4 y A5, podemos guardarlas en un único array usando:
  • 6. A=cat(4,A1,A2,A3,A4,A5) También podemos extraer frames de una imagen multiframe invocándola directamente mediante la notación de MATLAB. Por ejemplo, si tenemos una imagen multiframe MULTI y queremos extraer el tercer frame: FRM3=MULTI(:,:,:,3); Notar que en un array de imágenes multiframe, cada imagen debe tener las mismas dimensiones y el mismo número de planos. Igualmente, en un array multiframe de imágenes indexadas, cada una de las imágenes debe también usar el mismo mapa de colores. Limitaciones Muchas de las funciones en la toolbox operan sólo con las 2 primeras o hasta terceras dimensiones. Podemos usar arrays de cuatro dimensiones con estas funciones, pero extrayendo individualmente los frames. Por ejemplo, para mostrar el séptimo frame de un array multiframe haríamos: imshow(MULTI(:,:,:,7)) 4. Sumario de tipos de imágenes y clases numéricas La siguiente tabla muestra de forma breve la manera que MATLAB interpreta los elementos de una matriz de datos como píxeles de color, dependiendo del tipo de imágenes y clase de almacenamiento. Tipo de imagen Binaria Indexada De intensidad Clase uint8 o uint16 La imagen es un array mxn de ceros y unos donde el flag logical está activado. La toolbox no soporta imágenes binarias uint16. La imagen es un array mxn La imagen es un array mxn de enteros en el rango [1,p]. de enteros en el rango [1,p1]. El mapa de colores es un array px3 de valores de El mapa de colores es un punto flotante en el rango array px3 de valores de [0,1]. punto flotante en el rango [0,1]. La imagen es un array mxn La imagen es un array mxn de valores de punto flotante de valores de punto flotante que son escalados por que son escalados por MATLAB para producir MATLAB para producir índices del mapa de colores, índices del mapa de colores, típicamente en el rango típicamente en el rango [0,1]. [0,255] o [0,65535]. Clase double La imagen es un array mxn de ceros y unos donde el flag logical está activado
  • 7. RGB (Color verdadero) El mapa de colores es un array px3 de valores de punto flotante en el rango [0,1] y es típicamente en escala de grises. La imagen es un array mxnx3 de valores de punto flotante en el rango [0,1]. El mapa de colores es un array mxnx3 de enteros en el rango [0,255] o [0,65535] La imagen es un array mxnx3 de enteros en el rango [0,255] o [0,65535]. 5. Conversión de tipos de imágenes Para ciertas operaciones, puede resultar de utilidad convertir una imagen a un tipo diferente. Por ejemplo, si queremos filtrar una imagen de color que está guardada como imagen indexada, deberíamos primero convertirla a formato RGB. Cuando aplicamos el filtro a la imagen RGB, MATLAB filtra los valores de intensidad en la imagen de forma apropiada. Si intentamos filtrar la imagen indexada, MATLAB simplemente aplicará el filtro a los índices de la matriz, y el resultado será carente de significado. La siguiente tabla muestra las funciones de conversión de imágenes de la Image Processing Toolbox. Función dither gray2ind grayslice im2bw ind2gray ind2rgb mat2gray rgb2gray rgb2ind Propósito Crea una imagen binaria de una de escala de grises; o una indexada a partir de una RGB por el método de dithering. Crea una imagen indexada a partir de una de escala de grises. Crea una imagen indexada a partir de una de escala de grises por el método de umbralización. Crea una imagen binaria de una de intensidad, o RGB, basado en umbralización de la luminancia. Crea una imagen en escala de grises a partir de una imagen indexada. Crea una imagen RGB a partir de una imagen indexada. Crea una imagen en escala de grises a partir de datos en una matriz, reescalando los datos. Crea una imagen en escala de grises a partir de una imagen RGB. Crea una imagen indexada a partir de una imagen RGB. También podemos realizar ciertas conversiones simplemente utilizando la sintaxis de MATLAB. Por ejemplo, podemos convertir una imagen de intensidad a RGB concatenando tres copias de la matriz original a lo largo de su tercera dimensión:
  • 8. RGB=cat(3,I,I,I); La imagen RGB resultante tiene idénticas matrices para los planos rojo, verde y azul, por tanto la imagen será mostrada en escala de grises. 6. Referencias [1] Manual de ayuda de la Image Processing Toolbox de MATLAB