Está en la página 1de 3

Universidad Nacional Autnoma de Mxico Laboratorio de Procesamiento Digital de Imgenes Mdicas M. en I.

Ernesto Moya Albor Alumno: Valentn Morales Emmanuel No Cta. 302198328 Ingeniera en computacin

Prctica 2. Manejo bsico de imgenes con Matlab


RESUMEN En esta prctica nos dimos a la tarea de aprender como se abren, desplegan y guardan imgenes en distintos formatos. I. INTRODUCCIN
MATLAB incluye un conjunto de funciones (algoritmos) y herramientas grficas enfocadas al procesamiento, anlisis y visualizacin de imgenes, este conjunto es denominado toolbox de imgenes. Muchas de las funciones del toolbox de imgenes se encuentran escritas en el lenguaje de MATLAB, lo que permite inspeccionar los algoritmos usados. En esta prctica se tocaran los puntos de entrada, salida y visualizacin de imgenes en diferentes formatos usando las funciones del toolbox. Representancin de los Tipos de imgenes en MATLAB MATLAB soporta varios tipos de imgenes, las cuales se enumeran a continuacin: Imgenes Indexadas: Consisten de una matriz de datos y una paleta de colores. La paleta de colores es un arreglo de m filas por 3 columnas la cual contiene valores de punto flotante en el rango de [0,1]. Cada fila de la paleta especifica las componentes roja, verde y azul para un color nico. El color de cada pixel es determinado usando el correspondiente valor en la matriz de datos como un indice dentro de la paleta asignada. El valor 1 apunta a la primer fila de la paleta, el valor 2 a la segunda fila, etc. Imgenes de intensidad: Consisten de una matriz de datos, cuyos valores representan intensidades dentro de algn rango, cada elemento en la matriz corresponde a un pixel en la imagen representando niveles de gris, donde la intensidad 0 usualmente representa al negro y la intensidad 1, 255 o 65536 usualmente representa total intensidad, o blanco. Imgenes RGB o a color: Una imagen RGB, a veces es referida como una imagen de color verdadero, en MATLAB es almacenada como una matriz de mxnx3 (m filas por n columnas y una profundidad de 3) que define las componente roja, verde y azul para cada pixel individual. Las imgenes RGB no usan paleta de colores, el color de cada pixel es determinado por la combinacin de las intensidades roja, verde y azul almacenadas en cada plano de color en la ubicacin del pixel. Los formatos grficos almacenan las imgenes RGB como imgenes de 24 bits, donde las componentes: roja, verde y azul son cada una de 8 bits, esto da un potencial de 16 millones de colores. Un pixel cuyas componentes de color son (0,0,0) es desplegado como negro y un pixel con las componentes (1,1,1) es desplegado como blanco.

II. METODOLOGA Durante la prctica nos dimos a la tarea de crear scripts que hagan las funciones bsicas en el uso de imgenes, como lo son el abrir una imagen .jpg, hasta una con extensin . raw, la cual se debe de leer e interpretar dependiendo de su tamao y nmero de bits que la representan. Terminando en la realizacin de un video que est formado con la secuencia imgenes .raw. A continuacin pongo un par de cdigos vistos en el laboratorio: %retrgb.m
figure(12) subplot(2,2,1) imshow(retina) subplot(2,2,2) imshow(retinaR,[temp' ceros ceros]) subplot(2,2,3) imshow(retinaG,[ceros temp' ceros]) subplot(2,2,4) imshow(retinaB,[ceros ceros temp'])

Universidad Nacional Autnoma de Mxico Laboratorio de Procesamiento Digital de Imgenes Mdicas M. en I. Ernesto Moya Albor Alumno: Valentn Morales Emmanuel No Cta. 302198328 Ingeniera en computacin

%ret.m
retina=imread('retinaRGB.jpg','jpg'); retinaR=retina(:,:,1); retinaG=retina(:,:,2); retinaB=retina(:,:,3); temp=0:(1/255):1; ceros=zeros(256,1); figure(8) imagesc(retina) title('Retina RGB') figure(9) imagesc(retinaR) colormap([temp' ceros ceros]) title('Retina Red') figure(10) imagesc(retinaG) colormap([ceros temp' ceros]) title('Retina Green') figure(11) imagesc(retinaB) colormap([ceros ceros temp']) title('Retina Blue') retinaR(13,13) retinaG(13,13) retinaB(13,13)

%pie.m rxpie1=imread('rxpie-rodilla.tif',1); rxpie2=imread('rxpie-rodilla.tif',2); rxpie3=imread('rxpie-rodilla.tif',3); rxpie4=imread('rxpie-rodilla.tif',4); figure(19) subplot(2,2,1) colormap(gray(256)) imagesc(rxpie1) subplot(2,2,2) colormap(gray(256)) imagesc(rxpie2) subplot(2,2,3) colormap(gray(256)) imagesc(rxpie3) subplot(2,2,4) colormap(gray(256)) imagesc(rxpie4)

%intes.m
intestinoRGB=imread('retinaRGB.jpg'); figure(13) imagesc(intestinoRGB) temp=double(intestinoRGB); intestino=temp(:,:,1)*0.2989 + temp(:,:,2)*0.587 + temp(:,:,3)*0.114; figure(14) imagesc(intestino) colormap(gray(256))

Universidad Nacional Autnoma de Mxico Laboratorio de Procesamiento Digital de Imgenes Mdicas M. en I. Ernesto Moya Albor Alumno: Valentn Morales Emmanuel No Cta. 302198328 Ingeniera en computacin

III. RESULTADOS Cdigo en MatLab, tablas y figuras.


a) Realiza un script que lea de manera automtica todo el conjunto de imgenes y permita seleccionar que plano se desea visualizar en una misma ventana: plano axial, sagital o coronal: %corazons.m clc; clear all; close all; A=zeros(512,512,80); %Creamos los arreglos donde vamos a guardar las imgenes (AXIAL) B=zeros(80,512,512); %(CORONAL) C=zeros(512,80,512); %(SAGITAL) for i=321:400; %Ciclo para recorrer todas las imggenes nombre=['40_' num2str(i) '.tiff']; %num2str cambia de nm a caracter %A(:,:,i-320)=imread(nombre); %Leemos las imagenes y las colocamos en %las matrices B(i-320,:,:)=imread(nombre); %C(:,i-320,:)=imread(nombre); end %Este end sirve para limitar el ciclo de lectura de las matrices cuando %se cambia a leer las matrices B y C. Cuando se lee y manda a pantalla %la matriz A, se debe de comentar for j=1:512; %Este for sirve para mandar a pantalla las secuencias de las %matrices B y C. Para enviar A se debe de comentar figure(1) %image(A(:,:,i-320)) image(B(:,:,j)) %image(C(:,:,j)) colormap(gray(256)) %axis image pause(.1) %Una pequea pausa para darle continuidad a la secuencia y %parezca video. end %Fin del ciclo for i.. para la matriz A o del j para matrices B y C a) Realiza una funcin que abra cualquier imagen raw usando las funciones de lectura de datos binarios de archivos (fopen, fread y fclose) y entregue la matriz de datos en MatLab. b) Utilizando la funcin para abrir imgenes raw del inciso a), lee las 11 imgenes e investiga como crear un archivo de video (formato avi) para realizar una animacin del ciclo

cardaco, poder guardarlo en la computadora y posteriormente reproducirlo fuera de MatLab. %peli.m clear all; close all; clc; mov=avifile('corazon.avi','Compression',' cinepak'); %Creamos el archivo y %le damos los parmetros de tipo de compresin for i=0:10:100; %Ciclo para recorrer todas las imggenes fid=fopen( [num2str(i) '_.raw'],'r'); %num2str cambia de nm a caracter A=fread(fid,[512 512],'uint8'); fclose(fid); A=uint8(A); A=A'; F=figure(1) image(A) colormap(gray(256)) pause(.1) aviobj.KeyFramePerSec = 1; %Tengo dudas sobre este comando, porque al %parecer es el que hace que el video se vea ms lento, pero no sirve mov = addframe(mov,F); %Agregamos las tomas de video al archivo %corazon.avi end mov=close(mov); %Cerramos el archivo y listo para verse desde el reproductor %de windows

**Mando los cdigos y el video en el archivo del correo. IV. CONCLUSIONES La verdad tard demasiado en terminar est prctica porque no se me hizo tan fcil como a los otros, pero la verdad se logr un muy buen trabajo en el laboratorio y todo sali como se debe. Lo que ms me cost fue mandar a pantalla los diferentes planos del corazn, pero al final si se pudo. V. REFERENCIAS http://verona.fi-p.unam.mx/~emoya/ (Pgina del lab)

También podría gustarte