P1Imagenes.pdf

Embed Size (px)

Citation preview

  • 7/24/2019 P1Imagenes.pdf

    1/14

    1

    Table of ContentsPRCTICA No.1: APLICACIN DEL PROCESAMIENTO BSICO DE IMGENES .................. 1

    OPCIN No.2: ................................... ....................................................... ......................... 3PUNTO No.2: Imagen Falanges. ............................................................................................ 7PUNTO No.3: Imagen rotula. .............................................................................................. 12

    PRCTICA No.1: APLICACIN DEL PRO-CESAMIENTO BSICO DE IMGENES

    %%INTEGRANTES:

    %Aura Cristina Puche Sarmiento.%Lina Marcela Henao Grisales.

    %Jimmy Alexander Romero Miranda.

    close allclear allclc

    %PUNTO No.1:Imagen Craneo.

    %OPCIN No.1:

    %%Se carga la imagen en formato "DICOM", posteriormente se aplican varios%%filtros pasa bajas: " filtro de Medias", luego se repite el proceso%%varias veces para tratar de diminuir la intensidad de los artefactos

    %%que generan ruido en la imagen.%%Posteriormente, se suman las imagenes que se obtienen al aplicar el%%filtro y se muestra dicha imagen.

    cran=dicomread('ct_craneo');figure; imshow(cran,[-2000 2000])filt1=fspecial('average',7);cran1=imfilter(cran,filt1);filt2=fspecial('average',5);cran2=imfilter(cran,filt2);filt3=fspecial('average',13);cran3=imfilter(cran,filt3);filt4=fspecial('average',9);cran4=imfilter(cran,filt1);crann=cran1+cran2+cran3+cran4;

    %%Una vez realizado el paso anterior, se implementa un filtro pasa altas:%"Prewitt" para marcar bien los bordes de la imagen.Luego se suma la imagen%%resultantedel filtro con la imagen obtenida en el paso anterior.

    so=fspecial('prewitt');

  • 7/24/2019 P1Imagenes.pdf

    2/14

    2

    cransa=imfilter(crann,so);% Se selecciona la regin inferior de la imagen filtrada para evitar%sumar rayos adicionalesfory=1:550 forx=1:879 cransa(y,x)=0;

    endendcrand=crann+cransa;figureimshow(crand,[-6600 6600])

    Warning: Image is too big to fit on screen; displaying at 50%

    Warning: Image is too big to fit on screen; displaying at 50%

  • 7/24/2019 P1Imagenes.pdf

    3/14

    3

    OPCIN No.2:%Se carga la imagen en formato "DICOM":cran=dicomread('ct_craneo');cran=cran+1800;%Se desplaza el espectro para evitar prdidas de datoscran=uint16(cran); %Es importante usar uint16, debido a que los elementos%son de naturaleza diferente.figureimshow(cran,[0 4000]) %Se muestra la imagen en el mejor rango de%visualizacin.

    %Se implementa un filtro pasa bajas: se aplica un filtro de medias para%"difuminar" los bordes.filt2=fspecial('average',91);cran2=imfilter(cran,filt2);filt3=fspecial('average',11);cran3=imfilter(cran,filt3);crann=cran2+cran3;figure;imshow(crann,[2000 11000]) %Se visualiza la imagen en una ventana%adecuada.

  • 7/24/2019 P1Imagenes.pdf

    4/14

    4

    %%Binarizando la imagen original:cranbin=im2bw(cran,2300/65535);%Permite aislar los dientes y el huesofigure; imshow(cranbin)crandd=uint16(cranbin).*cran;

    %Se implementa un filtro pasa altas: "Prewitt" para destacar los bordes de%la imagen.so=fspecial('prewitt');cransa=imfilter(crann,so);crand=cransa+crann+crandd; %Se suman la imagenes obtenidas en el proceso de%filtrado.figureimshow(crand,[2000 12000]) %Se visualiza la imagen en la ventana ms%adecuada de la imagen.

    Warning: Image is too big to fit on screen; displaying at 50%

    Warning: Image is too big to fit on screen; displaying at 50%

    Warning: Image is too big to fit on screen; displaying at 50%Warning: Image is too big to fit on screen; displaying at 50%

  • 7/24/2019 P1Imagenes.pdf

    5/14

    5

  • 7/24/2019 P1Imagenes.pdf

    6/14

    6

  • 7/24/2019 P1Imagenes.pdf

    7/14

    7

    PUNTO No.2: Imagen Falanges.%Falanges_1:

    %Se carga la imagen en formato "DICOM":falange1=dicomread('falanges1.dcm');figureimshow(falange1,[0 4095]) %Se muestra la imagen en el mejor rango de%visualizacin.

    %Filtro pasa baja: se aplica un filtro de medias para "difuminar" los%bordes:

    filt1=fspecial('average', [25 25]);fal1lp=imfilter(falange1,filt1);

    %Filtro pasa alta: se resta la imagen obtenida del filtro pasabajas a la%original para obtener los bordes de la imagen:

    fal1hp= falange1-fal1lp;

  • 7/24/2019 P1Imagenes.pdf

    8/14

    8

    %Binarizando para eliminar los datos de menor intensidad:

    f1bin = im2bw(fal1hp,30/65535);

    %Apertura y cierre:

    %Se genera el elemento estructural para realizar la apertura y posterior%cierre.

    se = strel('disk',3);erodedI = imerode(f1bin,se); %Se aumenta el fondo, de manera que se pueda%eliminar el ruido puntual.dilatedI=imdilate(erodedI,se); %Se aumenta la imagen, permitiendo recuperar%los bordes perdidos durante la apertura.

    %Se multiplica la matriz binarizada por la original para recuperar los%tonos.

    multi=uint16(dilatedI).*falange1; %Se debe usar uint16, pues los elementos

    %son de naturaleza diferente.

    %Binarizando nuevamente para eliminar los bordes de la piel, que son de%menor intensidad que el hueso:

    fda = im2bw(multi,1000/65535);figureimshow(fda)fdac=imcomplement(fda); %Se complementa para obtener mayor contraste.figureimshow(fdac)

    %Falanges_2:

    %Se carga la imagen en formato "DICOM":falange2=dicomread('falanges2.dcm');figure; imshow(falange2,[0 4095])%Se aplica un filtro pasa baja.filt2=fspecial('average', [43 43]);f2lp=imfilter(falange2,filt2);%Se implementa el filtro pasa alta.f2hp= falange2-f2lp;

    %Binarizando la Imagen:f2bin = im2bw(f2hp,15/65535); %Se elimina la mayor parte de componentes de%baja intensidad.

    %Apertura y cierre:se2 = strel('diamond',4); %Elemento estructural.erodedI2 = imerode(f2bin,se2);dilatedI2=imdilate(erodedI2,se2);

    %Recuperando la escala de grises y binarizando nuevamente.multi2=uint16(dilatedI2).*falange2;%Binarizando.

  • 7/24/2019 P1Imagenes.pdf

    9/14

    9

    fda2 = im2bw(multi2,1300/65535);figureimshow(fda2)fda2c=imcomplement(fda2);figureimshow(fda2c)

    Warning: Image is too big to fit on screen; displaying at 17%

    Warning: Image is too big to fit on screen; displaying at 17%

    Warning: Image is too big to fit on screen; displaying at 17%

    Warning: Image is too big to fit on screen; displaying at 17%

    Warning: Image is too big to fit on screen; displaying at 17%

    Warning: Image is too big to fit on screen; displaying at 17%

  • 7/24/2019 P1Imagenes.pdf

    10/14

    10

  • 7/24/2019 P1Imagenes.pdf

    11/14

    11

  • 7/24/2019 P1Imagenes.pdf

    12/14

    12

    PUNTO No.3: Imagen rotula.%Lectura de la imagen en formato "DICOM":rotula=dicomread('rotula.dcm');

    %Para remover la grasa de la imagen, primero se invirti la imagen%original, posteriormente se escal la imagen por un factor 1/1998%para obtener la regin de inters.

    inv=imcomplement(rotula);inv_esc=inv/1998;

    %Una vez removida la grasa, los pixeles de menor intensidad se igualaron a%cero para asegurar que la zona tuviera intensidad mnima.

    inv_esc2=inv_esc;fori=1:256 forj=1:256 ifinv_esc2(i,j)==min(min(inv_esc)) inv_esc2(i,j)=0; end endend

    %Se multiplic la matriz resultante de la operacin antes descrita con la%imagen original.

  • 7/24/2019 P1Imagenes.pdf

    13/14

    13

    mod_1=rotula.*inv_esc2; %Multiplicacin de la imagen escalada con la imagen%original.

    %Se escal nuevamente la matriz, sta vez por un factor de 1/3500, con el%fin de disminuir la intensidad de la imagen y aumentar la coneccin de los

    %pixeles que conforman la rotula.

    mod_2=mod_1./3500;

    %Se utiliz el comando "bwlabel" para aislar la zona de la rotula, sta%qued con intendidad entre 1 y 48.

    I_bw=bwlabel(mod_2);I_bw=uint16(I_bw); %Se debe usar uint16, pues los elementos son%de naturaleza diferente.

    %Para viasualizar los detalles de la rotula se multiplic la imagen%obtenida en el paso anterior con la imagen original.

    I_bw2=I_bw.*rotula;

    %En la imagen resultante se logra observar la conservacin del rea%de la rotula y se destacan los detalles en la intensidad de la imagen,%los cuales son muy parecidos a la origial. Por la tanto, la imagen se%considera diagnstica.

    subplot(1,2,1);imshow(rotula,'DisplayRange',[])title('Imagen Original')subplot(1,2,2);imshow(I_bw2,'DisplayRange',[])

    title('Imagen Segmentada')

  • 7/24/2019 P1Imagenes.pdf

    14/14

    14

    Published with MATLAB R2013b