Document

Anuncio
Guía
1
Facultad: Ingeniería.
Escuela: Biomédica
Asignatura: Imágenes Médicas
Introducción a MatLab y
Tollbox Image Processing
Objetivos
• Introducir conceptos básicos de imágenes digitales.
• Introducir el uso del Image Processing ToolBox de MatLab.
Recomendaciones
• Tenga orden y aseo para trabajar
• Siempre que tenga duda del procedimiento a realizar, consúltelo con el
docente o instructor
• Todas las piezas y componentes que se quiten se deben de ir guardando en
forma ordenada
• Siempre anote lo que haga, aún lo mas irrelevante, ya que al final cuando el
sistema se tiene desensamblado se vuelve complejo
• Siempre aplique las normas de seguridad que le explicará el docente o
instructor
• Los circuitos eléctricos dentro del equipo utilizan voltajes los cuales son
capaces de causar algún daño debido a los choques eléctricos por lo que se
debe de tener en cuenta las normas de seguridad eléctrica.
• Familiarizarse con el sistema de desconexión de la energía eléctrica
• Los cables de alto voltaje y los capacitores de este equipo guardan energía
que puede provocar algún choque eléctrico, por lo que antes de manipularse se
deberán descargar.
• No aplique energía eléctrica al equipo, hasta que esté seguro que las
desconexiones que ha realizado se han restaurado.
• Al finalizar el laboratorio se debe dejar en la misma condición en que se
encontró, aún los accesorios y herramientas utilizadas.
1
Guía
1
Materiales y equipos
Computadora con MatLab y Processing Image Toolbox
Introducción Teórica
FUNDAMENTOS
Una imagen digital esta compuesta de píxeles los cuales pueden definirse de alguna
manera como pequeños puntos en la pantalla o imagen. Cada píxel es capaz de
proporcionar información visual acerca de una pequeña región en particular de la
imagen. A partir de esto, se puede considerar a una Imagen Digital, como un arreglo
de instrucciones de cómo se encuentra coloreado cada píxel. En general se puede
decir que una imagen de m por n si esta compuesta de m píxeles en la dirección
vertical y n píxeles en la dirección horizontal. Es decir que tener una imagen de 512 
1024 píxeles, significa que la imagen contiene en sí información para 524288 píxeles,
los cuales requiere mucha memoria. Por lo tanto, la compresión de las imágenes es
algo esencial para el procesamiento eficiente de la imagen. El sistema de coordenadas
empleado para la ubicación de cada píxel de la imagen es como se muestra la figura
1.1.
ORIGEN
(1,1)
COLUMNAS
FILAS
1 2 3 4 5 6 7
1
2
3
4
5
6
7
FIGURA 1.1. Sistema de coordenadas en la ubicación de cada píxel.
Las imágenes digitales en MATLAB se representan por medio de un arreglo de
números reales o complejos. Dicho arreglo puede ser bidimensional o
tridimensional, dependiendo del tipo de imagen de que se trate.
PROFUNDIDAD DE BITS
2
Guía
1
La Profundidad de Bits viene determinada por la cantidad de bits utilizados para definir
cada píxel. Mientras mayor sea la profundidad de bits, mayor será la cantidad de tonos
(escala de grises o color) que se pueden representar. Las imágenes digitales se
pueden producir en blanco y negro (en forma bitonal), a escala de grises o a color.
Una imagen bitonal está representada por píxeles que constan de 1 bit cada uno, que
pueden representar dos tonos (típicamente negro y blanco), utilizando los valores 0
para el negro y 1 para el blanco o visceversa.
Una imagen en escala de grises está compuesta por píxeles representados por
múltiples bits de información, que típicamente varían entre 2 a 8 bits o más.
Una imagen a colores está típicamente representada por una profundidad de bits entre
8 y 24 o superior a ésta. En una imagen de 24 bits, los bits por lo general están
divididos en tres grupos: 8 para el rojo, 8 para el verde, y 8 para el azul. Para
representar otros colores se utilizan combinaciones de esos bits. Una imagen de 24
bits ofrece 16,7 millones (2 24 ) de valores de color. Cada vez más, los escáneres
están capturando 10 bits o más por canal de color y por lo general imprimen a 8 bits
para compensar el "ruido" del escáner y para presentar una imagen que se acerque en
el mayor grado posible a la percepción humana.
Independientemente del numero de colores que el sistema pueda desplegar, MatLab
puede almacenar y procesar imagenes con altas profundidades de bits :
- 224 colores para imagenes RGB uint8
- 248 colores para imagenes RGB uint16
- 2159 colores para imagenes RGB double
Estas imagenes se desplegan mejor en sistemas con color de 24 bits, pero
usualmente lucen bien en sistemas de 16 bits.
Para poder determinar la profundidad de bits de la pantalla del sistema se debe
introducir el siguiente comando en el prompt de MatLab:
>> get (0,'ScreenDepth')
ans =
32
El entero que MatLab retorna representa el número de bits por cada píxel de la
pantalla. Es obvio entonces, que el tamaño del archivo estará definido por la
profundidad de bits con la que se trabaje, dado que para calcular el tamaño del archivo
se ha de proceder calculando primero el área de la imagen y luego multiplicandola por
la profundidad de bits que se selecciona.
FORMATO O TIPOS DE DATOS
Un entero es un número que no tiene una parte fraccional, el cual puede ser positivo,
negativo o cero. Normalmente, se utiliza un signo negativo para designar un entero
negativo. Sin embargo, una computadora puede guardar información en bits
3
Guía
1
unicamente, es decir, solamente puede hacer uso de dos valores para lograr la
representación anterior, 0 y 1. Cuando un entero es declarado como no signado (uint),
el significado de ello es que el bit mas significativo en la representación de un dato se
toma como lo que és, un dato significativo y no como un signo. MatLab tiene cuatro
tipos de datos enteros signados y cuatro no signados. Los del tipo signado permiten
trabajar con enteros negativos así como con enteros positivos, pero no pueden
representar un rango amplio de numeros como lo hacen los tipos no signados dado
que un bit es utilizado para designar el signo del número, si es positivo o negativo. El
tipo no signado permite un rango mayor de numeros, pero estos únicamente pueden
estar en el rango de los enteros positivos, o el cero.
TIPO DE DATOS
Entero signado de 8 bits
Entero signado de 16 bits
Entero signado de 32 bits
Entero signado de 64 bits
Entero no signado de 8
bits
Entero no signado de 16
bits
Entero no signado de 32
bits
Entero no signado de 64
bits
RANGO
-27 a (27-1)
-215 a (215-1)
-231 a (231-1)
-263 a (263-1)
0 a (28-1)
0 a (216-1)
0 a (232-1)
0 a (264-1)
La información de tipo Punto Flotante, provee los medios para guardar y manipular
numeros con parte fraccionaria y un amplio rango de ramaños. El standar ANSI
describe tres tipos de puntos flotantes de almacenaje conocidos como:
- float,
- double
- long double
MatLab construye la información del tipo de precisión doble (double) de acuerdo al
estandar 754 de la IEEE. Cualquier valor almacenado como double requiere 64 bits,
en un formato que se detalla a continuación:
BITS
63
62 a 52
51 a 0
USO
Signo (0 = Positivo, 1 =
Negativo)
Exponente
La fracción f (flotante) del
numero 1.f
Por defecto Matlab almacena la mayoría de los datos en vectores de clase doble
(double). Sin embargo, para procesamiento de imágenes, esta representación de
datos no es siempre la ideal, ya que el número de píxeles en una imagen puede ser
muy grande. Para reducir requerimientos de memoria las versiones nuevas de Matlab
puede almacenar píxeles en uint8 (enteros de 8 bits sin signo). Las operaciones
permitidas en Matlab para trabajar con píxeles uint8
son:
4
Guía
1
- Representación de imágenes
- Lectura de la imagen a partir de un formato (imread).
- Reordenar vectores (reshape, cat).
- Guardar o cargar un fichero .MAT.
- Funciones all (devuelve un 1 si todos los elementos de un vector valen 1) y any
(devuelve un 1 si cualquier elemento de un vector vale 1).
- Operadores lógicos y de indexación.
- Operaciones relacionales.
- La función find se puede utilizar con vectores de datos uint8, pero devuelve un
vector de dobles.
Aparte de las indicadas, Matlab NO puede realizar la mayoría de las funciones con
datos uint8. En particular, las peraciones matemáticas no están permitidas. Sin
embargo, la mayoría de las funciones del Toolbox de Imagen aceptan como entradas
uint8.
Convertir de una a otro formato o tipo de datos es sencillo, de la siguiente manera:
>> Ima=im2double(Ima); % Convierte una imagen con nombre Ima de uint8 a double.
>> Ima=im2uint8(Ima); % Convierte una imagen con nombre Ima de double a uint8.
FORMATOS DE IMÁGENES SOPORTADOS POR MATLAB
MatLab soporta los siguientes formatos de imágenes:
.BMP, .HDF, .JPEG, .PCX, .TIFF, .XWB
La mayoría de las imágenes disponibles hoy en día , se encuentran en el formato
JPEG, el cual es el nombre para el standard de compresión de imágenes que más se
utiliza.
Una imagen puede ser truecolor o indexada. Una imagen indexada, de altura h y
anchura w, se almacena mediante dos matrices: una matriz de índices tamaño h x m y
un mapa de colores. Cada celda de la matriz de índices corresponde a un pixel de la
imagen y contiene un índice a un color concreto del mapa de colores. Por ejemplo,
para una imagen en color de 8 bits hay 256 posibles colores; cada celda de la matriz
de índices tiene un valor entero entre 0 y 255 que es un índice a uno de los 256
colores descritos en el mapa de colores.
Al trabajar en MatLab se deben considerar múltiples factores como la manera en la
que se carga una imagen, el formato correcto, guardar la información de diferentes
maneras, como desplegar una imagen, conversiones entre diferentes formatos de
imágenes, etc.
5
Guía
1
FORMATOS DE TRABAJO EN MATLAB
-
Imagen de Intensidad (Imagen en escala de grises)
Representa una imagen como una matriz, donde cada elemento tiene un valor que se
corresponde a cuan brillante u oscuro debería ser coloreado el píxel en la posición
correspondiente. Existen dos formas de representar el número que a su vez
representa la brillantez del píxel. La clase double, asigna un número flotante (número
con decimales), entre 0 y 1 a cada píxel. El valor 0 corresponde al Negro y el 1 al
Blanco. La otra clase es la uint8 la cual asigna un entero entre 0 y 255 para
representar la brillantez de un píxel. El valor 0 corresponde al Negro y 255 al Blanco.
La clase uint8 requiere aproximadamente un octavo de almacenamiento comparado
con lo que requiere la clase double. Sin embargo, debe considerarse el hecho que
muchas funciones matemáticas pueden aplicarse únicamente con la clase double.
-
Imagen Binaria
Este formato de imagen también guarda una imagen como una matriz pero un píxel de
la misma únicamente tiene dos posibles colores Blanco o Negro (y nada entre ellos).
Este formato de imagen asigna 0 para el Negro y 1 para el Blanco.
-
Imagen Indexada
Es una forma práctica de representar las imágenes a color. Una imagen indexada
guarda una imagen como dos matrices. La primera matriz tiene el mismo tamaño que
la imagen y un numero para cada píxel. La segunda matriz se conoce como Mapa de
Color (Colormap) y su tamaño puede diferir del de la imagen. Los números en la
primera matriz indican el número a usar en la matriz Mapa de Color. Por ejemplo, si se
considera una matriz 3 por 3:
>> W=[1 2 3; 2 3 2; 3 2 1] ; y un mapa de color asociado de longitud 3:
>> mapa = [1 0 0; 0 1 0; 0 0 1] ; donde la primera fila (primera tripleta) es rojo, la
segunda verde y la última azul. Entonces,
>> W=[1 2 3; 2 3 2; 3 2 1];
>> mapa = [1 0 0; 0 1 0; 0 0 1];
>> image(W)
>> colormap(mapa)
El mapa de colores es una matriz que tiene tres columnas, una por cada color básico
(rojo, verde y azul o RGB) y una fila por cada posible color. Para el ejemplo de 256
colores, el mapa de colores sería una matriz de tamaño 256 x 3. Cada fila del mapa de
colores describe un color concreto y contiene tres números en punto flotante, con un
valor entre 0 y 1, que dan las cantidades de rojo, verde y azul que tiene el color. Así,
por ejemplo, si la fila 6 contiene los valores [0.062745 0.031373 0] ello indica que, en
ese mapa de colores, el color número 6 no contiene azul y contiene intensidades
pequeñas de rojo y verde. Muchas imágenes en blanco y negro se almacenan con un
mapa de 256 colores (niveles de gris), pero en este caso, cada nivel contiene las
mismas cantidades RGB, es decir, las tres celdas de cada fila contienen el mismo
valor. La instrucción utilizada para el trabajo con el mapa de colores en mapa es
6
Guía
1
colormap(m), la cual permite cambiar el mapa de colores que se utiliza en la
representación. En general, m es una matriz con tres columnas, de modo que la iésima fila determina las proporciones, en la escala RGB, del i-ésimo color utilizado.
Para más comodidad, MATLAB dispone de una serie de mapas de colores predefinidos, que se pueden imponer mediante colormap(mapa), donde mapa puede
tomar uno de los valores siguientes:
hsv - la escala por defecto (hue-saturation-value).
cool - Gama de colores entre cyan y magenta.
hot - Gama de colores entre rojo oscuro y amarillo.
gray - Gama de colores grises.
pink - Gama de colores rosados.
flag - Alterna rojo – blanco – azul - negro.
colorcube - Contraste de colores.
autumn - Colores entre el rojo y el amarillo.
spring - Colores entre el magenta y el amarillo.
winter - Colores entre el azul y el verde.
summer - Colores entre el verde y el amarillo.
-
Imagen RGB (Truecolor)
Este es otro formato para imágenes a color. Se presenta en la forma de un arreglo de
mn3 de clases uint8, uint16, single, o double cuyos valores de píxel especifican
valores de intensidad. Este representa una imagen con tres matrices de tamaños que
concuerdan con el de la imagen. Cada matriz corresponde a uno de los colores
básicos Rojo, Verde o Azul y da establecen cuanto de cada uno de estos colores debe
ser usado en un determinado píxel.
-
Imagen Múltiples-Frames
Cuando se requiere hacer estudios de secuencias de imágenes, este formato es el
indicado. Por ejemplo en imágenes médicas donde se requiere el estudio de
secuencias de cortes transversales, longitudinales, etc..
7
Guía
1
CONVERSIÓN ENTRE FORMATOS DE TRABAJO DE IMAGENES
Para convertir imágenes entre los diferentes formatos disponibles, MatLab con su
Image Processing Toolbox cuentan con una serie de comandos que facilitan realizar
tales procedimientos:
OPERACIÓN
ORIGINAL
RGB/Intensidad/Indexado
Intensidad
Indexado
Indexado
RGB
RGB
Matriz Regular
COMANDO MatLab
CONVERSIÓN A
Binario
Indexado
Intensidad
RGB
Intensidad
Indexado
Intensidad
(Escalando)
dither( )
gray2ind( )
ind2gray( )
ind2rgb( )
rgb2gray( )
rgb2ind( )
mat2gray( )
El comando mat2gray es útil si se tiene una matriz que representa una imagen pero
los valores que representan la escala de grises no son adecuados. El comando
mat2gray automáticamente re-escala todas las entradas a valores que se encuentren
entre 0 y 255 (si se utiliza uint8) o 0 y 1 ( si se utiliza double).
LECTURA DE ARCHIVOS
Las imágenes que desean ser procesadas, normalmente se encuentran en la forma de
un archivo, mientras que el trabajo en MatLab se desarrolla con una imagen vista
como una matriz. Estas imágenes una vez procesadas deben ser guardadas en un
formato de imagen que sea compatible con otros programas, tal como JPEG, TIFF,
etc,.
La función imread lee imágenes que se encuentren en cualquiera de los formatos de
archivo de gráficos de imágenes, con cualquier profundidad de bit. La mayoría de las
imágenes utiliza 8 bits para guardar los valores de los píxel. Como ya se explico,
cuando estos son guardados MatLab los guarda como clase uint8. Para formatos de
archivo que soportan información de 16 bits, PNG y TIFF por ejemplo, MatLab guarda
las imágenes como clase uint16.
Para imágenes indexadas, imread siempre lee el mapa de color dentro de una matriz
de clase double, aunque el mismo arreglo de la imagen sea clase uint8 o uint16.
LECTURA DE MÚLTIPLES IMÁGENES DE UN ARCHIVO GRAFICO
MatLab soporta archivos gráficos con diferente formato, tales como HDF y TIFF, que
pueden contener múltiples imágenes. Por defecto, imread importa solo la primera
imagen de un archivo de este tipo. Para importar las imágenes adicionales desde el
archivo, se debe utilizar la sintaxis soportada por el formato del archivo. Por ejemplo,
cuando se usan archivos TIFF, se puede utilizar un valor índice con imread que
8
Guía
1
identifica la imagen dentro del archivo que se requiere importar. Así, este ejemplo lee
una serie de 8 imágenes de un archivo TIFF y guarda las imágenes en un arreglo de 4
dimensiones. Se puede utilizar imfinfo para determinar cuantas imágenes han sido
guardadas en el archivo:
>> rm=uint8(zeros(128,128,1,8));
>>
for frame = 1:8
>>
[rm(:,:,:,frame),map]=imread(‘rm.tif’,frame);
>>
end
DESPLEGADO DE IMÁGENES EN MATLAB
No todos los comandos para el desplegado de una imagen requieren tener Image
Processing Toolbox. Tal es el cado se los siguientes comandos:
OPERACIÓN
Despliega una imagen representada como la
matriz en este caso Ima
Ajusta el brillo, el valor entre paréntesis es tal
que :
]-1 , 0[, proporciona una imagen más oscura
]0 , 1[, proporciona una imagen más brillante
Cambia los colores a tonos de gris
COMANDO MatLab
imagesc(Ima)
brighten( )
colormap(gray )
A veces la imagen no puede ser desplegada en escala de grises aunque haya sido
previamente convertida a una imagen en escala de grises. Es entonces que se puede
hacer uso del comando colormap(gray) para “forzar” a MatLab a usar una escala de
grises al momento de desplegar una imagen.
Si el MatLab tiene el Image Processing Toolbox instalado, es recomendable en lugar
de utilizar los comandos anteriores, el comando imshow
OPERACIÓN
Despliega una imagen representada como la
matriz en este caso Ima
COMANDO MatLab
Imshow(Ima)
9
Guía
1
Procedimiento
NOTA :
Etiquete con explicaciones cada una de las partes de las instrucciones que utilizo en la
práctica, en MatLab, luego del ; en una instrucción se coloca % y posteriormente se
puede escribir sin que perjudique la ejecución de la instrucción. Si hay un salto de
línea, se debe volver a colocar el carácter anterior. Esto le será útil como una buena
técnica de estudio para el parcial práctico.
PARTE I. Binarización de una imagen.
>> clear
>> close all
>> Ima= imread('sp01.gif');
>> figure(1), imshow(Ima);
>> ImaFil = Ima(100,:);
>> ImaCol = Ima(:,256);
>> figure(2), imshow(ImaFil);
>> figure(3), imshow(ImaCol);
>> max(max(Ima));
¿Cual es el resultado obtenido?, Un número aproximadamente igual a la mitad de este
será utilizado para declarar la variable x.
>> ImaBin1=Ima>x
>> ImaBin2=Ima<x
>> figure(4), imshow(ImaBin1);
>> figure(5), imshow(ImaBin2);
Visualice ambas figuras y establezca la diferencia entre ellas.
PARTE II. Mapa de Colores, imread, imshow e imwrite.
>> clear
>> close all
>> imabmp1=imread('Noies.bmp');
>> imatif1=imread('Nena.tif');
>> imajpg1=imread('Castell.jpg');
>> imabmp2=imread('H_24.bmp');
>> imatif2=imread('Hombro.tif');
>> imajpg2=imread('Aneuri.jpg');
10
Guía
1
Verifique como aparece cada una de estas imágenes, como matrices o arreglos de
matrices en el Workspace. Comente cada una de ellas. Proceda de la siguiente
manera:
>> [indimabmp1,map]=rgb2ind(imabmp1,255);
En este punto verifique como ha cambiado el Workspace. Intente presentar la imagen
obtenida en diferentes mapas de colores así:
>> imshow (indimabmp1), colormap(cool);
>> imshow (indimabmp1), colormap(spring);
>> imshow (indimabmp1), colormap(pink);
Ahora inténtelo con el mapa de color asignado, de la siguiente manera:
>> imshow (indimabmp1), colormap(map);
Realice una nueva conversión:
>> indimabmp1gr = ind2gray(indimabmp1,map);
Muestre el resultado
>> imshow (indimabmp1gr);
Vuelva a realizar las pruebas intentando mostrar la imagen antes convertida con los
Mapas de Colores utilizados anteriormente. ¿Qué resultado obtuvo?. Guarde la
imagen original.
>> imwrite (indimabmp1gr,'Noies.bmp');
Cambie el mapa de color de las imágenes cargadas, y guárdelas en su directorio de
trabajo.
PARTE III. Lectura de una imagen Multiframe.
El Toolbox de Procesamiento de Imágenes provee soporte para guardar múltiples
imágenes en un mismo arreglo. Cada imagen separada es lo que se conoce como
Frame.
Primero se ha de crear un arreglo en cuatro dimensiones que permitirá que en él sean
arreglados cada uno de los Frames.
>> mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array
donde, 128  128 es la medida en píxels de cada una de las imágenes en los Frames
y 27 es el número de Frames que la componen.
>> for frame=1:27
>> [mri(:,:,:,frame),map] = imread('mri.tif',frame);
>> end
11
Guía
1
Con la etapa anterior, se extraen todos los Frames los cuales pueden desplegar ser
desplegados individualmente de la siguiente manera:
>> figure;imshow(mri(:,:,:,6),map);
>> figure;imshow(mri(:,:,:,12),map);
>> figure;imshow(mri(:,:,:,24),map);
O si se quiere desplegar todo el conjunto a la vez, unicamente hace falta:
>> montage(mri,map);
PARTE IV. Histograma de una imagen.
Limpiar el workspace y cerrar todas las ventanas abiertas
>> clear
>> close all
Cargar un demo del Image Processing de MatLab
>> load clown
Presentar la imagen y su mapa de color asociado
>> figure(1), imshow(X,map),colorbar;
>> axis on ;
>> title('IMAGEN ORIGINAL EN COLOR');
Presentar la imagen en blanco y negro:
>> i = (1:256)'/256;
>> mapbn = [i i i];
>> figure(2), imshow(X,mapbn),colorbar;
>> axis on
>> title('IMAGEN EN BLANCO Y NEGRO');
Mejorar el contraste de la imagen
>> ColorMax = max(X(:));
>> Y = X/ColorMax*256;
>> figure(3), imshow(Y,mapbn), colorbar;
>> axis on, title('IMAGEN CON MEJORA DE CONTRASTE');
Presentar el histograma de las imágenes, notando las diferencias entre ambos.
>> figure(4),subplot(2,1,1),imhist(X,mapbn);
>> figure(4),subplot(2,1,2),imhist(Y,mapbn);
Presentar la imagen original con múltiples mapas de colores, que sirven de referencia
en la misma imagen:
12
Guía
1
>> figure(5), imshow(Y,flag), colorbar;
>> figure(6), imshow(Y,hot), colorbar;
>> figure(7), imshow(Y,autumn), colorbar;
>> figure(8), imshow(Y,winter), colorbar;
Análisis de resultados





¿Qué es una imagen TrueColor?
¿Qué es un histograma y que ayuda a determinar?
Defina las siguientes clases utilizadas en el Image Processing Toolbox: uint8,
uint16, double, logical
¿Cómo puede conseguirse una imagen indexada partiendo de una imagen
TrueColor?. Presente un ejemplo.
Desarrolle el siguiente procedimiento, e indique que diferencias encuentra
entre las dos imágenes que se correspondan en color y la razón de estas
diferencias.
>> [X,map] = imread('Gaudi.bmp');
>> figure(1), imshow(X,map)
>> title('IMAGEN ORIGINAL CON SU PROPIO MAPA DE COLOR');
i = (1:256)'/256;
>> mapred1= [i zeros(256,1) zeros(256,1)];
>> mapgre1= [zeros(256,1) i zeros(256,1)];
>> mapblu1= [zeros(256,1) zeros(256,1) i];
>> figure(2), imshow(X,mapred1)
>> title('IMAGEN ROJO 1');
>> figure(3), imshow(X,mapgre1)
>> title('IMAGEN VERDE 1');
>> figure(4), imshow(X,mapblu1)
>> title('IMAGEN AZUL 1');
>> mapr= [ones(256,1) zeros(256,1) zeros(256,1)]; mapred2=mapr.*map ;
>> mapg= [zeros(256,1) ones(256,1) zeros(256,1)];mapgre2=mapg.*map ;
>> mapb= [zeros(256,1) zeros(256,1) ones(256,1)];mapblu2=mapb.*map ;
>> figure(5), imshow(X,mapred2)
>> title('IMAGEN ROJO 2');
>> figure(6), imshow(X,mapgre2)
>> title('IMAGEN VERDE 2');
>> figure(7), imshow(X,mapblu2)
>> title('IMAGEN AZUL 2');
13
Guía
1
Investigación complementaria





Investigue la instrucción o el conjunto de estas, que permitirían obtener
un conjunto de filas de una imagen y poderlo visualizar posteriormente.
Investigue la instrucción o el conjunto de estas, que permitirían obtener
un conjunto de columnas de
una imagen y poderlo visualizar
posteriormente.
Investigue el comando imfinfo, identifique cada uno de los datos que
proporciona y su utilidad.
En que se diferencian las imágenes guardadas en diferentes
modalidades en el formato .BMP, es decir, si se tienen imágenes de 16
bits, de 24 bits, de 32 bits.
¿Que es un archivo .m y en que se diferencia de un archivo .mat.?
Información adicional
-
www.us.es/edan/asignaturas/ CN3/BREVES%20APUNTES%20MATLAB.pdf
-
www.iit.upco.es/palacios/matlab/
-
www.mathworks.com/access/helpdesk/help/toolbox/images/images.shtml
14
Descargar